Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added data/location-import-template.xlsx
Binary file not shown.
23 changes: 23 additions & 0 deletions sql/cleardown-all-tables.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
DELETE FROM SIGHTING;
DELETE FROM REGISTRATION_HISTORY;
DELETE FROM VOYAGE_EVENT;
DELETE FROM VOYAGE;
DELETE FROM PORT;
DELETE FROM VESSEL;
DELETE FROM COUNTRY;
DELETE FROM JOB_STATUS;
DELETE FROM LOCATION;
DELETE FROM OPERATOR;
DELETE FROM VESSEL_TYPE;

DELETE FROM SQLITE_SEQUENCE WHERE NAME='SIGHTING';
DELETE FROM SQLITE_SEQUENCE WHERE NAME='REGISTRATION_HISTORY';
DELETE FROM SQLITE_SEQUENCE WHERE NAME='VOYAGE_EVENT';
DELETE FROM SQLITE_SEQUENCE WHERE NAME='VOYAGE';
DELETE FROM SQLITE_SEQUENCE WHERE NAME='PORT';
DELETE FROM SQLITE_SEQUENCE WHERE NAME='VESSEL';
DELETE FROM SQLITE_SEQUENCE WHERE NAME='COUNTRY';
DELETE FROM SQLITE_SEQUENCE WHERE NAME='JOB_STATUS';
DELETE FROM SQLITE_SEQUENCE WHERE NAME='LOCATION';
DELETE FROM SQLITE_SEQUENCE WHERE NAME='OPERATOR';
DELETE FROM SQLITE_SEQUENCE WHERE NAME='VESSEL_TYPE';
2 changes: 2 additions & 0 deletions sql/cleardown-operators.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
DELETE FROM OPERATOR;
DELETE FROM SQLITE_SEQUENCE WHERE name='OPERATOR';
22 changes: 22 additions & 0 deletions sql/create-test-voyage.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
SELECT * FROM PORT WHERE Code IN ( 'GBSOU', 'BEZEE' );
/*
6901 22 BEZEE Zeebrugge
59315 235 GBSOU Southampton
*/
SELECT * FROM OPERATOR WHERE Name LIKE 'P&O%';
/*
310 P&O Cruises
311 P&O Cruises Australia
*/
SELECT v.*
FROM VESSEL v
INNER JOIN REGISTRATION_HISTORY rh ON rh.Vessel_Id = v.Id
WHERE rh.Name = 'Arcadia';
-- 3 9226906 2005 8.2 285 33
INSERT INTO VOYAGE ( Operator_Id, Vessel_ID, Number ) VALUES ( 310, 3, 'I413' );
SELECT * FROM VOYAGE WHERE Number = 'I413';
-- 1 I413 310 3
INSERT INTO VOYAGE_EVENT ( Voyage_Id, Event_Type, Port_Id, Date ) VALUES ( 1, 0, 59315, '2024-05-14 00:00:00' );
INSERT INTO VOYAGE_EVENT ( Voyage_Id, Event_Type, Port_Id, Date ) VALUES ( 1, 1, 6901, '2024-05-15 00:00:00' );
INSERT INTO VOYAGE_EVENT ( Voyage_Id, Event_Type, Port_Id, Date ) VALUES ( 1, 0, 6901, '2024-05-15 00:00:00' );
INSERT INTO VOYAGE_EVENT ( Voyage_Id, Event_Type, Port_Id, Date ) VALUES ( 1, 1, 59315, '2024-05-17 00:00:00' );
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ public ManagerCommandLineParser(IHelpGenerator generator) : base(generator)
Add(CommandLineOptionType.Help, false, "--help", "-h", "Show command line help", 0, 0);
Add(CommandLineOptionType.Update, false, "--update", "-u", "Apply the latest database migrations", 0, 0);
Add(CommandLineOptionType.ImportCountries, false, "--import-countries", "-ic", "Import countries from a CSV file", 1, 1);
Add(CommandLineOptionType.ImportLocations, false, "--import-locations", "-il", "Import locations from a CSV file", 1, 1);
Add(CommandLineOptionType.ImportOperators, false, "--import-operators", "-io", "Import operators from a CSV file", 1, 1);
Add(CommandLineOptionType.ImportVesselTypes, false, "--import-vessel-types", "-ivt", "Import vessel types from a CSV file", 1, 1);
Add(CommandLineOptionType.ImportVessels, false, "--import-vessels", "-iv", "Import vessels from a CSV file", 1, 1);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ public enum CommandLineOptionType
ExportVesselTypes,
Help,
ImportCountries,
ImportLocations,
ImportOperators,
ImportPorts,
ImportSightings,
Expand Down
8 changes: 8 additions & 0 deletions src/ShippingRecorder.Manager/Logic/ImportHandler.cs
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,14 @@ private async Task HandleImport<T, U>(CommandLineOptionType type, string pattern
public async Task HandleCountryImportAsync()
=> await HandleImport<CountryImporter, ExportableCountry>(CommandLineOptionType.ImportCountries, ExportableCountry.CsvRecordPattern);


/// <summary>
/// Handle the locations import command
/// </summary>
/// <returns></returns>
public async Task HandleLocationImportAsync()
=> await HandleImport<LocationImporter, ExportableLocation>(CommandLineOptionType.ImportLocations, ExportableLocation.CsvRecordPattern);

/// <summary>
/// Handle the operators import command
/// </summary>
Expand Down
6 changes: 6 additions & 0 deletions src/ShippingRecorder.Manager/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,12 @@ public static async Task Main(string[] args)
await new ImportHandler(settings, parser, factory).HandleCountryImportAsync();
}

// If a CSV file containing locations details has been supplied, import it
if (parser.IsPresent(CommandLineOptionType.ImportLocations))
{
await new ImportHandler(settings, parser, factory).HandleLocationImportAsync();
}

// If a CSV file containing operator details has been supplied, import it
if (parser.IsPresent(CommandLineOptionType.ImportOperators))
{
Expand Down