diff --git a/misc/BreCalApi.cs b/misc/BreCalApi.cs index 8fb6f78..c816626 100644 --- a/misc/BreCalApi.cs +++ b/misc/BreCalApi.cs @@ -1,7 +1,7 @@ //---------------------- // -// Generated REST API Client Code Generator v1.8.4.0 on 21.09.2023 07:07:32 +// Generated REST API Client Code Generator v1.8.4.0 on 23.10.2023 09:06:40 // Using the tool OpenAPI Generator v7.0.0 // //---------------------- @@ -52,6 +52,7 @@ using System.Threading.Tasks; namespace BreCalClient.misc.Api { #pragma warning disable CS8073 // The result of the expression is always the same since a value of this type is never equal to 'null' + /// /// Represents a collection of functions to interact with the API endpoints /// @@ -69,7 +70,7 @@ namespace BreCalClient.misc.Api /// Gets a list of all berths registered /// /// - /// + /// /// /// Thrown when fails to make API call /// Index associated with the operation. @@ -87,7 +88,7 @@ namespace BreCalClient.misc.Api /// Returns a JWT session token and user data if successful /// /// - /// + /// /// /// Thrown when fails to make API call /// Login credentials @@ -107,7 +108,7 @@ namespace BreCalClient.misc.Api /// Gets a list of notifications pursuant to a specified participant and ship call /// /// - /// + /// /// /// Thrown when fails to make API call /// **Id of participant**. *Example: 2*. Id returned through loading of participant @@ -127,7 +128,7 @@ namespace BreCalClient.misc.Api /// gets a particular participant entry corresponding to user id /// /// - /// + /// /// /// Thrown when fails to make API call /// **Id of user**. *Example: 2*. User id returned by verify call. (optional) @@ -138,57 +139,59 @@ namespace BreCalClient.misc.Api /// Gets a list of ship calls /// /// Thrown when fails to make API call + /// number of days in the past to include in the result. *Example: 7*. (optional) /// Index associated with the operation. /// List<Shipcall> - List ShipcallsGet(int operationIndex = 0); + List ShipcallsGet(int? pastDays = default(int?), int operationIndex = 0); /// /// Gets a list of ship calls /// /// - /// + /// /// /// Thrown when fails to make API call + /// number of days in the past to include in the result. *Example: 7*. (optional) /// Index associated with the operation. /// ApiResponse of List<Shipcall> - ApiResponse> ShipcallsGetWithHttpInfo(int operationIndex = 0); + ApiResponse> ShipcallsGetWithHttpInfo(int? pastDays = default(int?), int operationIndex = 0); /// /// Create a new ship call /// /// Thrown when fails to make API call /// Creates a new ship call. **Do not** provide id parameter. /// Index associated with the operation. - /// - void ShipcallsPost(Shipcall shipcall, int operationIndex = 0); + /// Id + Id ShipcallsPost(Shipcall shipcall, int operationIndex = 0); /// /// Create a new ship call /// /// - /// + /// /// /// Thrown when fails to make API call /// Creates a new ship call. **Do not** provide id parameter. /// Index associated with the operation. - /// ApiResponse of Object(void) - ApiResponse ShipcallsPostWithHttpInfo(Shipcall shipcall, int operationIndex = 0); + /// ApiResponse of Id + ApiResponse ShipcallsPostWithHttpInfo(Shipcall shipcall, int operationIndex = 0); /// /// Updates a ship call /// /// Thrown when fails to make API call /// Creates a new ship call. The id parameter is **required**. /// Index associated with the operation. - /// - void ShipcallsPut(Shipcall shipcall, int operationIndex = 0); + /// Id + Id ShipcallsPut(Shipcall shipcall, int operationIndex = 0); /// /// Updates a ship call /// /// - /// + /// /// /// Thrown when fails to make API call /// Creates a new ship call. The id parameter is **required**. /// Index associated with the operation. - /// ApiResponse of Object(void) - ApiResponse ShipcallsPutWithHttpInfo(Shipcall shipcall, int operationIndex = 0); + /// ApiResponse of Id + ApiResponse ShipcallsPutWithHttpInfo(Shipcall shipcall, int operationIndex = 0); /// /// gets a list of registered shipcalls /// @@ -200,7 +203,7 @@ namespace BreCalClient.misc.Api /// gets a list of registered shipcalls /// /// - /// + /// /// /// Thrown when fails to make API call /// Index associated with the operation. @@ -218,7 +221,7 @@ namespace BreCalClient.misc.Api /// Delete a times entry for a ship call. /// /// - /// + /// /// /// Thrown when fails to make API call /// @@ -237,7 +240,7 @@ namespace BreCalClient.misc.Api /// Get all recorded times for a a ship call /// /// - /// + /// /// /// Thrown when fails to make API call /// **Id**. *Example: 42*. Id of referenced ship call. (optional) @@ -250,38 +253,38 @@ namespace BreCalClient.misc.Api /// Thrown when fails to make API call /// Times entry that will be added to the ship call. **Do not** provide id parameter. /// Index associated with the operation. - /// - void TimesPost(Times times, int operationIndex = 0); + /// Id + Id TimesPost(Times times, int operationIndex = 0); /// /// Create a new times entry for a ship call /// /// - /// + /// /// /// Thrown when fails to make API call /// Times entry that will be added to the ship call. **Do not** provide id parameter. /// Index associated with the operation. - /// ApiResponse of Object(void) - ApiResponse TimesPostWithHttpInfo(Times times, int operationIndex = 0); + /// ApiResponse of Id + ApiResponse TimesPostWithHttpInfo(Times times, int operationIndex = 0); /// /// Update a times entry for a ship call /// /// Thrown when fails to make API call /// Times entry that will be added to the ship call. The id parameter is **required**. /// Index associated with the operation. - /// - void TimesPut(Times times, int operationIndex = 0); + /// Id + Id TimesPut(Times times, int operationIndex = 0); /// /// Update a times entry for a ship call /// /// - /// + /// /// /// Thrown when fails to make API call /// Times entry that will be added to the ship call. The id parameter is **required**. /// Index associated with the operation. - /// ApiResponse of Object(void) - ApiResponse TimesPutWithHttpInfo(Times times, int operationIndex = 0); + /// ApiResponse of Id + ApiResponse TimesPutWithHttpInfo(Times times, int operationIndex = 0); /// /// Update user details (first/last name, phone, password) /// @@ -294,7 +297,7 @@ namespace BreCalClient.misc.Api /// Update user details (first/last name, phone, password) /// /// - /// + /// /// /// Thrown when fails to make API call /// User details @@ -313,7 +316,7 @@ namespace BreCalClient.misc.Api /// Gets a list of all berths registered /// /// - /// + /// /// /// Thrown when fails to make API call /// Index associated with the operation. @@ -324,7 +327,7 @@ namespace BreCalClient.misc.Api /// Gets a list of all berths registered /// /// - /// + /// /// /// Thrown when fails to make API call /// Index associated with the operation. @@ -335,7 +338,7 @@ namespace BreCalClient.misc.Api /// Returns a JWT session token and user data if successful /// /// - /// + /// /// /// Thrown when fails to make API call /// Login credentials @@ -347,7 +350,7 @@ namespace BreCalClient.misc.Api /// Returns a JWT session token and user data if successful /// /// - /// + /// /// /// Thrown when fails to make API call /// Login credentials @@ -359,7 +362,7 @@ namespace BreCalClient.misc.Api /// Gets a list of notifications pursuant to a specified participant and ship call /// /// - /// + /// /// /// Thrown when fails to make API call /// **Id of participant**. *Example: 2*. Id returned through loading of participant @@ -372,7 +375,7 @@ namespace BreCalClient.misc.Api /// Gets a list of notifications pursuant to a specified participant and ship call /// /// - /// + /// /// /// Thrown when fails to make API call /// **Id of participant**. *Example: 2*. Id returned through loading of participant @@ -385,7 +388,7 @@ namespace BreCalClient.misc.Api /// gets a particular participant entry corresponding to user id /// /// - /// + /// /// /// Thrown when fails to make API call /// **Id of user**. *Example: 2*. User id returned by verify call. (optional) @@ -397,7 +400,7 @@ namespace BreCalClient.misc.Api /// gets a particular participant entry corresponding to user id /// /// - /// + /// /// /// Thrown when fails to make API call /// **Id of user**. *Example: 2*. User id returned by verify call. (optional) @@ -409,77 +412,79 @@ namespace BreCalClient.misc.Api /// Gets a list of ship calls /// /// - /// + /// /// /// Thrown when fails to make API call + /// number of days in the past to include in the result. *Example: 7*. (optional) /// Index associated with the operation. /// Cancellation Token to cancel the request. /// Task of List<Shipcall> - System.Threading.Tasks.Task> ShipcallsGetAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task> ShipcallsGetAsync(int? pastDays = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); /// /// Gets a list of ship calls /// /// - /// + /// /// /// Thrown when fails to make API call + /// number of days in the past to include in the result. *Example: 7*. (optional) /// Index associated with the operation. /// Cancellation Token to cancel the request. /// Task of ApiResponse (List<Shipcall>) - System.Threading.Tasks.Task>> ShipcallsGetWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task>> ShipcallsGetWithHttpInfoAsync(int? pastDays = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); /// /// Create a new ship call /// /// - /// + /// /// /// Thrown when fails to make API call /// Creates a new ship call. **Do not** provide id parameter. /// Index associated with the operation. /// Cancellation Token to cancel the request. - /// Task of void - System.Threading.Tasks.Task ShipcallsPostAsync(Shipcall shipcall, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + /// Task of Id + System.Threading.Tasks.Task ShipcallsPostAsync(Shipcall shipcall, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); /// /// Create a new ship call /// /// - /// + /// /// /// Thrown when fails to make API call /// Creates a new ship call. **Do not** provide id parameter. /// Index associated with the operation. /// Cancellation Token to cancel the request. - /// Task of ApiResponse - System.Threading.Tasks.Task> ShipcallsPostWithHttpInfoAsync(Shipcall shipcall, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + /// Task of ApiResponse (Id) + System.Threading.Tasks.Task> ShipcallsPostWithHttpInfoAsync(Shipcall shipcall, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); /// /// Updates a ship call /// /// - /// + /// /// /// Thrown when fails to make API call /// Creates a new ship call. The id parameter is **required**. /// Index associated with the operation. /// Cancellation Token to cancel the request. - /// Task of void - System.Threading.Tasks.Task ShipcallsPutAsync(Shipcall shipcall, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + /// Task of Id + System.Threading.Tasks.Task ShipcallsPutAsync(Shipcall shipcall, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); /// /// Updates a ship call /// /// - /// + /// /// /// Thrown when fails to make API call /// Creates a new ship call. The id parameter is **required**. /// Index associated with the operation. /// Cancellation Token to cancel the request. - /// Task of ApiResponse - System.Threading.Tasks.Task> ShipcallsPutWithHttpInfoAsync(Shipcall shipcall, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + /// Task of ApiResponse (Id) + System.Threading.Tasks.Task> ShipcallsPutWithHttpInfoAsync(Shipcall shipcall, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); /// /// gets a list of registered shipcalls /// /// - /// + /// /// /// Thrown when fails to make API call /// Index associated with the operation. @@ -490,7 +495,7 @@ namespace BreCalClient.misc.Api /// gets a list of registered shipcalls /// /// - /// + /// /// /// Thrown when fails to make API call /// Index associated with the operation. @@ -501,7 +506,7 @@ namespace BreCalClient.misc.Api /// Delete a times entry for a ship call. /// /// - /// + /// /// /// Thrown when fails to make API call /// @@ -513,7 +518,7 @@ namespace BreCalClient.misc.Api /// Delete a times entry for a ship call. /// /// - /// + /// /// /// Thrown when fails to make API call /// @@ -525,7 +530,7 @@ namespace BreCalClient.misc.Api /// Get all recorded times for a a ship call /// /// - /// + /// /// /// Thrown when fails to make API call /// **Id**. *Example: 42*. Id of referenced ship call. (optional) @@ -537,7 +542,7 @@ namespace BreCalClient.misc.Api /// Get all recorded times for a a ship call /// /// - /// + /// /// /// Thrown when fails to make API call /// **Id**. *Example: 42*. Id of referenced ship call. (optional) @@ -549,55 +554,55 @@ namespace BreCalClient.misc.Api /// Create a new times entry for a ship call /// /// - /// + /// /// /// Thrown when fails to make API call /// Times entry that will be added to the ship call. **Do not** provide id parameter. /// Index associated with the operation. /// Cancellation Token to cancel the request. - /// Task of void - System.Threading.Tasks.Task TimesPostAsync(Times times, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + /// Task of Id + System.Threading.Tasks.Task TimesPostAsync(Times times, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); /// /// Create a new times entry for a ship call /// /// - /// + /// /// /// Thrown when fails to make API call /// Times entry that will be added to the ship call. **Do not** provide id parameter. /// Index associated with the operation. /// Cancellation Token to cancel the request. - /// Task of ApiResponse - System.Threading.Tasks.Task> TimesPostWithHttpInfoAsync(Times times, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + /// Task of ApiResponse (Id) + System.Threading.Tasks.Task> TimesPostWithHttpInfoAsync(Times times, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); /// /// Update a times entry for a ship call /// /// - /// + /// /// /// Thrown when fails to make API call /// Times entry that will be added to the ship call. The id parameter is **required**. /// Index associated with the operation. /// Cancellation Token to cancel the request. - /// Task of void - System.Threading.Tasks.Task TimesPutAsync(Times times, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + /// Task of Id + System.Threading.Tasks.Task TimesPutAsync(Times times, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); /// /// Update a times entry for a ship call /// /// - /// + /// /// /// Thrown when fails to make API call /// Times entry that will be added to the ship call. The id parameter is **required**. /// Index associated with the operation. /// Cancellation Token to cancel the request. - /// Task of ApiResponse - System.Threading.Tasks.Task> TimesPutWithHttpInfoAsync(Times times, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + /// Task of ApiResponse (Id) + System.Threading.Tasks.Task> TimesPutWithHttpInfoAsync(Times times, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); /// /// Update user details (first/last name, phone, password) /// /// - /// + /// /// /// Thrown when fails to make API call /// User details @@ -609,7 +614,7 @@ namespace BreCalClient.misc.Api /// Update user details (first/last name, phone, password) /// /// - /// + /// /// /// Thrown when fails to make API call /// User details @@ -723,7 +728,7 @@ namespace BreCalClient.misc.Api set { _exceptionFactory = value; } } /// - /// Gets a list of all berths registered + /// Gets a list of all berths registered /// /// Thrown when fails to make API call /// Index associated with the operation. @@ -734,7 +739,7 @@ namespace BreCalClient.misc.Api return localVarResponse.Data; } /// - /// Gets a list of all berths registered + /// Gets a list of all berths registered /// /// Thrown when fails to make API call /// Index associated with the operation. @@ -778,7 +783,7 @@ namespace BreCalClient.misc.Api return localVarResponse; } /// - /// Gets a list of all berths registered + /// Gets a list of all berths registered /// /// Thrown when fails to make API call /// Index associated with the operation. @@ -790,7 +795,7 @@ namespace BreCalClient.misc.Api return localVarResponse.Data; } /// - /// Gets a list of all berths registered + /// Gets a list of all berths registered /// /// Thrown when fails to make API call /// Index associated with the operation. @@ -835,7 +840,7 @@ namespace BreCalClient.misc.Api return localVarResponse; } /// - /// Returns a JWT session token and user data if successful + /// Returns a JWT session token and user data if successful /// /// Thrown when fails to make API call /// Login credentials @@ -847,7 +852,7 @@ namespace BreCalClient.misc.Api return localVarResponse.Data; } /// - /// Returns a JWT session token and user data if successful + /// Returns a JWT session token and user data if successful /// /// Thrown when fails to make API call /// Login credentials @@ -899,7 +904,7 @@ namespace BreCalClient.misc.Api return localVarResponse; } /// - /// Returns a JWT session token and user data if successful + /// Returns a JWT session token and user data if successful /// /// Thrown when fails to make API call /// Login credentials @@ -912,7 +917,7 @@ namespace BreCalClient.misc.Api return localVarResponse.Data; } /// - /// Returns a JWT session token and user data if successful + /// Returns a JWT session token and user data if successful /// /// Thrown when fails to make API call /// Login credentials @@ -965,7 +970,7 @@ namespace BreCalClient.misc.Api return localVarResponse; } /// - /// Gets a list of notifications pursuant to a specified participant and ship call + /// Gets a list of notifications pursuant to a specified participant and ship call /// /// Thrown when fails to make API call /// **Id of participant**. *Example: 2*. Id returned through loading of participant @@ -978,7 +983,7 @@ namespace BreCalClient.misc.Api return localVarResponse.Data; } /// - /// Gets a list of notifications pursuant to a specified participant and ship call + /// Gets a list of notifications pursuant to a specified participant and ship call /// /// Thrown when fails to make API call /// **Id of participant**. *Example: 2*. Id returned through loading of participant @@ -1026,7 +1031,7 @@ namespace BreCalClient.misc.Api return localVarResponse; } /// - /// Gets a list of notifications pursuant to a specified participant and ship call + /// Gets a list of notifications pursuant to a specified participant and ship call /// /// Thrown when fails to make API call /// **Id of participant**. *Example: 2*. Id returned through loading of participant @@ -1040,7 +1045,7 @@ namespace BreCalClient.misc.Api return localVarResponse.Data; } /// - /// Gets a list of notifications pursuant to a specified participant and ship call + /// Gets a list of notifications pursuant to a specified participant and ship call /// /// Thrown when fails to make API call /// **Id of participant**. *Example: 2*. Id returned through loading of participant @@ -1089,7 +1094,7 @@ namespace BreCalClient.misc.Api return localVarResponse; } /// - /// gets a particular participant entry corresponding to user id + /// gets a particular participant entry corresponding to user id /// /// Thrown when fails to make API call /// **Id of user**. *Example: 2*. User id returned by verify call. (optional) @@ -1101,7 +1106,7 @@ namespace BreCalClient.misc.Api return localVarResponse.Data; } /// - /// gets a particular participant entry corresponding to user id + /// gets a particular participant entry corresponding to user id /// /// Thrown when fails to make API call /// **Id of user**. *Example: 2*. User id returned by verify call. (optional) @@ -1150,7 +1155,7 @@ namespace BreCalClient.misc.Api return localVarResponse; } /// - /// gets a particular participant entry corresponding to user id + /// gets a particular participant entry corresponding to user id /// /// Thrown when fails to make API call /// **Id of user**. *Example: 2*. User id returned by verify call. (optional) @@ -1163,7 +1168,7 @@ namespace BreCalClient.misc.Api return localVarResponse.Data; } /// - /// gets a particular participant entry corresponding to user id + /// gets a particular participant entry corresponding to user id /// /// Thrown when fails to make API call /// **Id of user**. *Example: 2*. User id returned by verify call. (optional) @@ -1213,23 +1218,25 @@ namespace BreCalClient.misc.Api return localVarResponse; } /// - /// Gets a list of ship calls + /// Gets a list of ship calls /// /// Thrown when fails to make API call + /// number of days in the past to include in the result. *Example: 7*. (optional) /// Index associated with the operation. /// List<Shipcall> - public List ShipcallsGet(int operationIndex = 0) + public List ShipcallsGet(int? pastDays = default(int?), int operationIndex = 0) { - BreCalClient.misc.Client.ApiResponse> localVarResponse = ShipcallsGetWithHttpInfo(); + BreCalClient.misc.Client.ApiResponse> localVarResponse = ShipcallsGetWithHttpInfo(pastDays); return localVarResponse.Data; } /// - /// Gets a list of ship calls + /// Gets a list of ship calls /// /// Thrown when fails to make API call + /// number of days in the past to include in the result. *Example: 7*. (optional) /// Index associated with the operation. /// ApiResponse of List<Shipcall> - public BreCalClient.misc.Client.ApiResponse> ShipcallsGetWithHttpInfo(int operationIndex = 0) + public BreCalClient.misc.Client.ApiResponse> ShipcallsGetWithHttpInfo(int? pastDays = default(int?), int operationIndex = 0) { BreCalClient.misc.Client.RequestOptions localVarRequestOptions = new BreCalClient.misc.Client.RequestOptions(); string[] _contentTypes = new string[] { @@ -1248,6 +1255,10 @@ namespace BreCalClient.misc.Api { localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept); } + if (pastDays != null) + { + localVarRequestOptions.QueryParameters.Add(BreCalClient.misc.Client.ClientUtils.ParameterToMultiMap("", "past_days", pastDays)); + } localVarRequestOptions.Operation = "DefaultApi.ShipcallsGet"; localVarRequestOptions.OperationIndex = operationIndex; // authentication (ApiKey) required @@ -1268,25 +1279,27 @@ namespace BreCalClient.misc.Api return localVarResponse; } /// - /// Gets a list of ship calls + /// Gets a list of ship calls /// /// Thrown when fails to make API call + /// number of days in the past to include in the result. *Example: 7*. (optional) /// Index associated with the operation. /// Cancellation Token to cancel the request. /// Task of List<Shipcall> - public async System.Threading.Tasks.Task> ShipcallsGetAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public async System.Threading.Tasks.Task> ShipcallsGetAsync(int? pastDays = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { - BreCalClient.misc.Client.ApiResponse> localVarResponse = await ShipcallsGetWithHttpInfoAsync(operationIndex, cancellationToken).ConfigureAwait(false); + BreCalClient.misc.Client.ApiResponse> localVarResponse = await ShipcallsGetWithHttpInfoAsync(pastDays, operationIndex, cancellationToken).ConfigureAwait(false); return localVarResponse.Data; } /// - /// Gets a list of ship calls + /// Gets a list of ship calls /// /// Thrown when fails to make API call + /// number of days in the past to include in the result. *Example: 7*. (optional) /// Index associated with the operation. /// Cancellation Token to cancel the request. /// Task of ApiResponse (List<Shipcall>) - public async System.Threading.Tasks.Task>> ShipcallsGetWithHttpInfoAsync(int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public async System.Threading.Tasks.Task>> ShipcallsGetWithHttpInfoAsync(int? pastDays = default(int?), int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { BreCalClient.misc.Client.RequestOptions localVarRequestOptions = new BreCalClient.misc.Client.RequestOptions(); string[] _contentTypes = new string[] { @@ -1305,6 +1318,10 @@ namespace BreCalClient.misc.Api { localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept); } + if (pastDays != null) + { + localVarRequestOptions.QueryParameters.Add(BreCalClient.misc.Client.ClientUtils.ParameterToMultiMap("", "past_days", pastDays)); + } localVarRequestOptions.Operation = "DefaultApi.ShipcallsGet"; localVarRequestOptions.OperationIndex = operationIndex; // authentication (ApiKey) required @@ -1325,24 +1342,25 @@ namespace BreCalClient.misc.Api return localVarResponse; } /// - /// Create a new ship call + /// Create a new ship call /// /// Thrown when fails to make API call /// Creates a new ship call. **Do not** provide id parameter. /// Index associated with the operation. - /// - public void ShipcallsPost(Shipcall shipcall, int operationIndex = 0) + /// Id + public Id ShipcallsPost(Shipcall shipcall, int operationIndex = 0) { - ShipcallsPostWithHttpInfo(shipcall); + BreCalClient.misc.Client.ApiResponse localVarResponse = ShipcallsPostWithHttpInfo(shipcall); + return localVarResponse.Data; } /// - /// Create a new ship call + /// Create a new ship call /// /// Thrown when fails to make API call /// Creates a new ship call. **Do not** provide id parameter. /// Index associated with the operation. - /// ApiResponse of Object(void) - public BreCalClient.misc.Client.ApiResponse ShipcallsPostWithHttpInfo(Shipcall shipcall, int operationIndex = 0) + /// ApiResponse of Id + public BreCalClient.misc.Client.ApiResponse ShipcallsPostWithHttpInfo(Shipcall shipcall, int operationIndex = 0) { // verify the required parameter 'shipcall' is set if (shipcall == null) @@ -1376,7 +1394,7 @@ namespace BreCalClient.misc.Api localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization")); } // make the HTTP request - var localVarResponse = this.Client.Post("/shipcalls", localVarRequestOptions, this.Configuration); + var localVarResponse = this.Client.Post("/shipcalls", localVarRequestOptions, this.Configuration); if (this.ExceptionFactory != null) { Exception _exception = this.ExceptionFactory("ShipcallsPost", localVarResponse); @@ -1388,26 +1406,27 @@ namespace BreCalClient.misc.Api return localVarResponse; } /// - /// Create a new ship call + /// Create a new ship call /// /// Thrown when fails to make API call /// Creates a new ship call. **Do not** provide id parameter. /// Index associated with the operation. /// Cancellation Token to cancel the request. - /// Task of void - public async System.Threading.Tasks.Task ShipcallsPostAsync(Shipcall shipcall, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + /// Task of Id + public async System.Threading.Tasks.Task ShipcallsPostAsync(Shipcall shipcall, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { - await ShipcallsPostWithHttpInfoAsync(shipcall, operationIndex, cancellationToken).ConfigureAwait(false); + BreCalClient.misc.Client.ApiResponse localVarResponse = await ShipcallsPostWithHttpInfoAsync(shipcall, operationIndex, cancellationToken).ConfigureAwait(false); + return localVarResponse.Data; } /// - /// Create a new ship call + /// Create a new ship call /// /// Thrown when fails to make API call /// Creates a new ship call. **Do not** provide id parameter. /// Index associated with the operation. /// Cancellation Token to cancel the request. - /// Task of ApiResponse - public async System.Threading.Tasks.Task> ShipcallsPostWithHttpInfoAsync(Shipcall shipcall, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + /// Task of ApiResponse (Id) + public async System.Threading.Tasks.Task> ShipcallsPostWithHttpInfoAsync(Shipcall shipcall, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { // verify the required parameter 'shipcall' is set if (shipcall == null) @@ -1441,7 +1460,7 @@ namespace BreCalClient.misc.Api localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization")); } // make the HTTP request - var localVarResponse = await this.AsynchronousClient.PostAsync("/shipcalls", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false); + var localVarResponse = await this.AsynchronousClient.PostAsync("/shipcalls", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false); if (this.ExceptionFactory != null) { Exception _exception = this.ExceptionFactory("ShipcallsPost", localVarResponse); @@ -1453,24 +1472,25 @@ namespace BreCalClient.misc.Api return localVarResponse; } /// - /// Updates a ship call + /// Updates a ship call /// /// Thrown when fails to make API call /// Creates a new ship call. The id parameter is **required**. /// Index associated with the operation. - /// - public void ShipcallsPut(Shipcall shipcall, int operationIndex = 0) + /// Id + public Id ShipcallsPut(Shipcall shipcall, int operationIndex = 0) { - ShipcallsPutWithHttpInfo(shipcall); + BreCalClient.misc.Client.ApiResponse localVarResponse = ShipcallsPutWithHttpInfo(shipcall); + return localVarResponse.Data; } /// - /// Updates a ship call + /// Updates a ship call /// /// Thrown when fails to make API call /// Creates a new ship call. The id parameter is **required**. /// Index associated with the operation. - /// ApiResponse of Object(void) - public BreCalClient.misc.Client.ApiResponse ShipcallsPutWithHttpInfo(Shipcall shipcall, int operationIndex = 0) + /// ApiResponse of Id + public BreCalClient.misc.Client.ApiResponse ShipcallsPutWithHttpInfo(Shipcall shipcall, int operationIndex = 0) { // verify the required parameter 'shipcall' is set if (shipcall == null) @@ -1504,7 +1524,7 @@ namespace BreCalClient.misc.Api localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization")); } // make the HTTP request - var localVarResponse = this.Client.Put("/shipcalls", localVarRequestOptions, this.Configuration); + var localVarResponse = this.Client.Put("/shipcalls", localVarRequestOptions, this.Configuration); if (this.ExceptionFactory != null) { Exception _exception = this.ExceptionFactory("ShipcallsPut", localVarResponse); @@ -1516,26 +1536,27 @@ namespace BreCalClient.misc.Api return localVarResponse; } /// - /// Updates a ship call + /// Updates a ship call /// /// Thrown when fails to make API call /// Creates a new ship call. The id parameter is **required**. /// Index associated with the operation. /// Cancellation Token to cancel the request. - /// Task of void - public async System.Threading.Tasks.Task ShipcallsPutAsync(Shipcall shipcall, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + /// Task of Id + public async System.Threading.Tasks.Task ShipcallsPutAsync(Shipcall shipcall, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { - await ShipcallsPutWithHttpInfoAsync(shipcall, operationIndex, cancellationToken).ConfigureAwait(false); + BreCalClient.misc.Client.ApiResponse localVarResponse = await ShipcallsPutWithHttpInfoAsync(shipcall, operationIndex, cancellationToken).ConfigureAwait(false); + return localVarResponse.Data; } /// - /// Updates a ship call + /// Updates a ship call /// /// Thrown when fails to make API call /// Creates a new ship call. The id parameter is **required**. /// Index associated with the operation. /// Cancellation Token to cancel the request. - /// Task of ApiResponse - public async System.Threading.Tasks.Task> ShipcallsPutWithHttpInfoAsync(Shipcall shipcall, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + /// Task of ApiResponse (Id) + public async System.Threading.Tasks.Task> ShipcallsPutWithHttpInfoAsync(Shipcall shipcall, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { // verify the required parameter 'shipcall' is set if (shipcall == null) @@ -1569,7 +1590,7 @@ namespace BreCalClient.misc.Api localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization")); } // make the HTTP request - var localVarResponse = await this.AsynchronousClient.PutAsync("/shipcalls", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false); + var localVarResponse = await this.AsynchronousClient.PutAsync("/shipcalls", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false); if (this.ExceptionFactory != null) { Exception _exception = this.ExceptionFactory("ShipcallsPut", localVarResponse); @@ -1581,7 +1602,7 @@ namespace BreCalClient.misc.Api return localVarResponse; } /// - /// gets a list of registered shipcalls + /// gets a list of registered shipcalls /// /// Thrown when fails to make API call /// Index associated with the operation. @@ -1592,7 +1613,7 @@ namespace BreCalClient.misc.Api return localVarResponse.Data; } /// - /// gets a list of registered shipcalls + /// gets a list of registered shipcalls /// /// Thrown when fails to make API call /// Index associated with the operation. @@ -1636,7 +1657,7 @@ namespace BreCalClient.misc.Api return localVarResponse; } /// - /// gets a list of registered shipcalls + /// gets a list of registered shipcalls /// /// Thrown when fails to make API call /// Index associated with the operation. @@ -1648,7 +1669,7 @@ namespace BreCalClient.misc.Api return localVarResponse.Data; } /// - /// gets a list of registered shipcalls + /// gets a list of registered shipcalls /// /// Thrown when fails to make API call /// Index associated with the operation. @@ -1693,7 +1714,7 @@ namespace BreCalClient.misc.Api return localVarResponse; } /// - /// Delete a times entry for a ship call. + /// Delete a times entry for a ship call. /// /// Thrown when fails to make API call /// @@ -1704,7 +1725,7 @@ namespace BreCalClient.misc.Api TimesDeleteWithHttpInfo(id); } /// - /// Delete a times entry for a ship call. + /// Delete a times entry for a ship call. /// /// Thrown when fails to make API call /// @@ -1750,7 +1771,7 @@ namespace BreCalClient.misc.Api return localVarResponse; } /// - /// Delete a times entry for a ship call. + /// Delete a times entry for a ship call. /// /// Thrown when fails to make API call /// @@ -1762,7 +1783,7 @@ namespace BreCalClient.misc.Api await TimesDeleteWithHttpInfoAsync(id, operationIndex, cancellationToken).ConfigureAwait(false); } /// - /// Delete a times entry for a ship call. + /// Delete a times entry for a ship call. /// /// Thrown when fails to make API call /// @@ -1809,7 +1830,7 @@ namespace BreCalClient.misc.Api return localVarResponse; } /// - /// Get all recorded times for a a ship call + /// Get all recorded times for a a ship call /// /// Thrown when fails to make API call /// **Id**. *Example: 42*. Id of referenced ship call. (optional) @@ -1821,7 +1842,7 @@ namespace BreCalClient.misc.Api return localVarResponse.Data; } /// - /// Get all recorded times for a a ship call + /// Get all recorded times for a a ship call /// /// Thrown when fails to make API call /// **Id**. *Example: 42*. Id of referenced ship call. (optional) @@ -1870,7 +1891,7 @@ namespace BreCalClient.misc.Api return localVarResponse; } /// - /// Get all recorded times for a a ship call + /// Get all recorded times for a a ship call /// /// Thrown when fails to make API call /// **Id**. *Example: 42*. Id of referenced ship call. (optional) @@ -1883,7 +1904,7 @@ namespace BreCalClient.misc.Api return localVarResponse.Data; } /// - /// Get all recorded times for a a ship call + /// Get all recorded times for a a ship call /// /// Thrown when fails to make API call /// **Id**. *Example: 42*. Id of referenced ship call. (optional) @@ -1933,24 +1954,25 @@ namespace BreCalClient.misc.Api return localVarResponse; } /// - /// Create a new times entry for a ship call + /// Create a new times entry for a ship call /// /// Thrown when fails to make API call /// Times entry that will be added to the ship call. **Do not** provide id parameter. /// Index associated with the operation. - /// - public void TimesPost(Times times, int operationIndex = 0) + /// Id + public Id TimesPost(Times times, int operationIndex = 0) { - TimesPostWithHttpInfo(times); + BreCalClient.misc.Client.ApiResponse localVarResponse = TimesPostWithHttpInfo(times); + return localVarResponse.Data; } /// - /// Create a new times entry for a ship call + /// Create a new times entry for a ship call /// /// Thrown when fails to make API call /// Times entry that will be added to the ship call. **Do not** provide id parameter. /// Index associated with the operation. - /// ApiResponse of Object(void) - public BreCalClient.misc.Client.ApiResponse TimesPostWithHttpInfo(Times times, int operationIndex = 0) + /// ApiResponse of Id + public BreCalClient.misc.Client.ApiResponse TimesPostWithHttpInfo(Times times, int operationIndex = 0) { // verify the required parameter 'times' is set if (times == null) @@ -1984,7 +2006,7 @@ namespace BreCalClient.misc.Api localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization")); } // make the HTTP request - var localVarResponse = this.Client.Post("/times", localVarRequestOptions, this.Configuration); + var localVarResponse = this.Client.Post("/times", localVarRequestOptions, this.Configuration); if (this.ExceptionFactory != null) { Exception _exception = this.ExceptionFactory("TimesPost", localVarResponse); @@ -1996,26 +2018,27 @@ namespace BreCalClient.misc.Api return localVarResponse; } /// - /// Create a new times entry for a ship call + /// Create a new times entry for a ship call /// /// Thrown when fails to make API call /// Times entry that will be added to the ship call. **Do not** provide id parameter. /// Index associated with the operation. /// Cancellation Token to cancel the request. - /// Task of void - public async System.Threading.Tasks.Task TimesPostAsync(Times times, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + /// Task of Id + public async System.Threading.Tasks.Task TimesPostAsync(Times times, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { - await TimesPostWithHttpInfoAsync(times, operationIndex, cancellationToken).ConfigureAwait(false); + BreCalClient.misc.Client.ApiResponse localVarResponse = await TimesPostWithHttpInfoAsync(times, operationIndex, cancellationToken).ConfigureAwait(false); + return localVarResponse.Data; } /// - /// Create a new times entry for a ship call + /// Create a new times entry for a ship call /// /// Thrown when fails to make API call /// Times entry that will be added to the ship call. **Do not** provide id parameter. /// Index associated with the operation. /// Cancellation Token to cancel the request. - /// Task of ApiResponse - public async System.Threading.Tasks.Task> TimesPostWithHttpInfoAsync(Times times, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + /// Task of ApiResponse (Id) + public async System.Threading.Tasks.Task> TimesPostWithHttpInfoAsync(Times times, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { // verify the required parameter 'times' is set if (times == null) @@ -2049,7 +2072,7 @@ namespace BreCalClient.misc.Api localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization")); } // make the HTTP request - var localVarResponse = await this.AsynchronousClient.PostAsync("/times", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false); + var localVarResponse = await this.AsynchronousClient.PostAsync("/times", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false); if (this.ExceptionFactory != null) { Exception _exception = this.ExceptionFactory("TimesPost", localVarResponse); @@ -2061,24 +2084,25 @@ namespace BreCalClient.misc.Api return localVarResponse; } /// - /// Update a times entry for a ship call + /// Update a times entry for a ship call /// /// Thrown when fails to make API call /// Times entry that will be added to the ship call. The id parameter is **required**. /// Index associated with the operation. - /// - public void TimesPut(Times times, int operationIndex = 0) + /// Id + public Id TimesPut(Times times, int operationIndex = 0) { - TimesPutWithHttpInfo(times); + BreCalClient.misc.Client.ApiResponse localVarResponse = TimesPutWithHttpInfo(times); + return localVarResponse.Data; } /// - /// Update a times entry for a ship call + /// Update a times entry for a ship call /// /// Thrown when fails to make API call /// Times entry that will be added to the ship call. The id parameter is **required**. /// Index associated with the operation. - /// ApiResponse of Object(void) - public BreCalClient.misc.Client.ApiResponse TimesPutWithHttpInfo(Times times, int operationIndex = 0) + /// ApiResponse of Id + public BreCalClient.misc.Client.ApiResponse TimesPutWithHttpInfo(Times times, int operationIndex = 0) { // verify the required parameter 'times' is set if (times == null) @@ -2112,7 +2136,7 @@ namespace BreCalClient.misc.Api localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization")); } // make the HTTP request - var localVarResponse = this.Client.Put("/times", localVarRequestOptions, this.Configuration); + var localVarResponse = this.Client.Put("/times", localVarRequestOptions, this.Configuration); if (this.ExceptionFactory != null) { Exception _exception = this.ExceptionFactory("TimesPut", localVarResponse); @@ -2124,26 +2148,27 @@ namespace BreCalClient.misc.Api return localVarResponse; } /// - /// Update a times entry for a ship call + /// Update a times entry for a ship call /// /// Thrown when fails to make API call /// Times entry that will be added to the ship call. The id parameter is **required**. /// Index associated with the operation. /// Cancellation Token to cancel the request. - /// Task of void - public async System.Threading.Tasks.Task TimesPutAsync(Times times, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + /// Task of Id + public async System.Threading.Tasks.Task TimesPutAsync(Times times, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { - await TimesPutWithHttpInfoAsync(times, operationIndex, cancellationToken).ConfigureAwait(false); + BreCalClient.misc.Client.ApiResponse localVarResponse = await TimesPutWithHttpInfoAsync(times, operationIndex, cancellationToken).ConfigureAwait(false); + return localVarResponse.Data; } /// - /// Update a times entry for a ship call + /// Update a times entry for a ship call /// /// Thrown when fails to make API call /// Times entry that will be added to the ship call. The id parameter is **required**. /// Index associated with the operation. /// Cancellation Token to cancel the request. - /// Task of ApiResponse - public async System.Threading.Tasks.Task> TimesPutWithHttpInfoAsync(Times times, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + /// Task of ApiResponse (Id) + public async System.Threading.Tasks.Task> TimesPutWithHttpInfoAsync(Times times, int operationIndex = 0, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { // verify the required parameter 'times' is set if (times == null) @@ -2177,7 +2202,7 @@ namespace BreCalClient.misc.Api localVarRequestOptions.HeaderParameters.Add("Authorization", this.Configuration.GetApiKeyWithPrefix("Authorization")); } // make the HTTP request - var localVarResponse = await this.AsynchronousClient.PutAsync("/times", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false); + var localVarResponse = await this.AsynchronousClient.PutAsync("/times", localVarRequestOptions, this.Configuration, cancellationToken).ConfigureAwait(false); if (this.ExceptionFactory != null) { Exception _exception = this.ExceptionFactory("TimesPut", localVarResponse); @@ -2189,7 +2214,7 @@ namespace BreCalClient.misc.Api return localVarResponse; } /// - /// Update user details (first/last name, phone, password) + /// Update user details (first/last name, phone, password) /// /// Thrown when fails to make API call /// User details @@ -2200,7 +2225,7 @@ namespace BreCalClient.misc.Api UserPutWithHttpInfo(userDetails); } /// - /// Update user details (first/last name, phone, password) + /// Update user details (first/last name, phone, password) /// /// Thrown when fails to make API call /// User details @@ -2252,7 +2277,7 @@ namespace BreCalClient.misc.Api return localVarResponse; } /// - /// Update user details (first/last name, phone, password) + /// Update user details (first/last name, phone, password) /// /// Thrown when fails to make API call /// User details @@ -2264,7 +2289,7 @@ namespace BreCalClient.misc.Api await UserPutWithHttpInfoAsync(userDetails, operationIndex, cancellationToken).ConfigureAwait(false); } /// - /// Update user details (first/last name, phone, password) + /// Update user details (first/last name, phone, password) /// /// Thrown when fails to make API call /// User details @@ -3557,7 +3582,7 @@ namespace BreCalClient.misc.Client { Proxy = null; UserAgent = WebUtility.UrlEncode("OpenAPI-Generator/1.0.0/csharp"); - BasePath = "https://brecaltest.bsmd-emswe.eu"; + BasePath = "https://brecal.bsmd-emswe.eu"; DefaultHeaders = new ConcurrentDictionary(); ApiKey = new ConcurrentDictionary(); ApiKeyPrefix = new ConcurrentDictionary(); @@ -3565,7 +3590,7 @@ namespace BreCalClient.misc.Client { { new Dictionary { - {"url", "https://brecaltest.bsmd-emswe.eu"}, + {"url", "https://brecal.bsmd-emswe.eu"}, {"description", "Test server hosted on vcup"}, } } @@ -3584,7 +3609,7 @@ namespace BreCalClient.misc.Client IDictionary defaultHeaders, IDictionary apiKey, IDictionary apiKeyPrefix, - string basePath = "https://brecaltest.bsmd-emswe.eu") : this() + string basePath = "https://brecal.bsmd-emswe.eu") : this() { if (string.IsNullOrWhiteSpace(basePath)) throw new ArgumentException("The provided basePath is invalid.", "basePath"); @@ -3613,7 +3638,7 @@ namespace BreCalClient.misc.Client /// /// Gets or sets the base path for API access. /// - public virtual string BasePath + public virtual string BasePath { get { return _basePath; } set { _basePath = value; } @@ -3760,7 +3785,7 @@ namespace BreCalClient.misc.Client /// /// ApiKeyPrefix["Authorization"] = "Bearer"; /// - /// … where ApiKey["Authorization"] would then be used to set the value of your bearer token. + /// � where ApiKey["Authorization"] would then be used to set the value of your bearer token. /// /// /// OAuth2 workflows should set tokens via AccessToken. @@ -4903,16 +4928,18 @@ namespace BreCalClient.misc.Model /// /// id. /// name. - /// participantId. + /// ownerId. + /// authorityId. /// varLock. /// created. /// modified. /// deleted (default to false). - public Berth(int id = default(int), string name = default(string), int? participantId = default(int?), bool? varLock = default(bool?), DateTime created = default(DateTime), DateTime? modified = default(DateTime?), bool deleted = false) + public Berth(int id = default(int), string name = default(string), int? ownerId = default(int?), int? authorityId = default(int?), bool? varLock = default(bool?), DateTime created = default(DateTime), DateTime? modified = default(DateTime?), bool deleted = false) { this.Id = id; this.Name = name; - this.ParticipantId = participantId; + this.OwnerId = ownerId; + this.AuthorityId = authorityId; this.VarLock = varLock; this.Created = created; this.Modified = modified; @@ -4929,10 +4956,15 @@ namespace BreCalClient.misc.Model [DataMember(Name = "name", EmitDefaultValue = true)] public string Name { get; set; } /// - /// Gets or Sets ParticipantId + /// Gets or Sets OwnerId /// - [DataMember(Name = "participant_id", EmitDefaultValue = true)] - public int? ParticipantId { get; set; } + [DataMember(Name = "owner_id", EmitDefaultValue = true)] + public int? OwnerId { get; set; } + /// + /// Gets or Sets AuthorityId + /// + [DataMember(Name = "authority_id", EmitDefaultValue = true)] + public int? AuthorityId { get; set; } /// /// Gets or Sets VarLock /// @@ -4963,7 +4995,8 @@ namespace BreCalClient.misc.Model sb.Append("class Berth {\n"); sb.Append(" Id: ").Append(Id).Append("\n"); sb.Append(" Name: ").Append(Name).Append("\n"); - sb.Append(" ParticipantId: ").Append(ParticipantId).Append("\n"); + sb.Append(" OwnerId: ").Append(OwnerId).Append("\n"); + sb.Append(" AuthorityId: ").Append(AuthorityId).Append("\n"); sb.Append(" VarLock: ").Append(VarLock).Append("\n"); sb.Append(" Created: ").Append(Created).Append("\n"); sb.Append(" Modified: ").Append(Modified).Append("\n"); @@ -4999,37 +5032,41 @@ namespace BreCalClient.misc.Model { return false; } - - return + return ( this.Id == input.Id || this.Id.Equals(input.Id) - ) && + ) && ( this.Name == input.Name || (this.Name != null && this.Name.Equals(input.Name)) - ) && + ) && ( - this.ParticipantId == input.ParticipantId || - (this.ParticipantId != null && - this.ParticipantId.Equals(input.ParticipantId)) - ) && + this.OwnerId == input.OwnerId || + (this.OwnerId != null && + this.OwnerId.Equals(input.OwnerId)) + ) && + ( + this.AuthorityId == input.AuthorityId || + (this.AuthorityId != null && + this.AuthorityId.Equals(input.AuthorityId)) + ) && ( this.VarLock == input.VarLock || (this.VarLock != null && this.VarLock.Equals(input.VarLock)) - ) && + ) && ( this.Created == input.Created || (this.Created != null && this.Created.Equals(input.Created)) - ) && + ) && ( this.Modified == input.Modified || (this.Modified != null && this.Modified.Equals(input.Modified)) - ) && + ) && ( this.Deleted == input.Deleted || this.Deleted.Equals(input.Deleted) @@ -5050,9 +5087,13 @@ namespace BreCalClient.misc.Model { hashCode = (hashCode * 59) + this.Name.GetHashCode(); } - if (this.ParticipantId != null) + if (this.OwnerId != null) { - hashCode = (hashCode * 59) + this.ParticipantId.GetHashCode(); + hashCode = (hashCode * 59) + this.OwnerId.GetHashCode(); + } + if (this.AuthorityId != null) + { + hashCode = (hashCode * 59) + this.AuthorityId.GetHashCode(); } if (this.VarLock != null) { @@ -5180,12 +5221,12 @@ namespace BreCalClient.misc.Model { return false; } - return + return ( this.Username == input.Username || (this.Username != null && this.Username.Equals(input.Username)) - ) && + ) && ( this.Password == input.Password || (this.Password != null && @@ -5305,7 +5346,7 @@ namespace BreCalClient.misc.Model { return false; } - return + return ( this.Message == input.Message || (this.Message != null && @@ -5340,6 +5381,107 @@ namespace BreCalClient.misc.Model } } +/* + * Bremen calling API + * + * Administer DEBRE ship calls, times and notifications + * + * The version of the OpenAPI document: 0.6.0 + * Contact: info@textbausteine.net + * Generated by: https://github.com/openapitools/openapi-generator.git + */ +namespace BreCalClient.misc.Model +{ + /// + /// A unique identifier for an entity + /// + [DataContract(Name = "Id")] + public partial class Id : IEquatable, IValidatableObject + { + /// + /// Initializes a new instance of the class. + /// + /// varId. + public Id(int varId = default(int)) + { + this.VarId = varId; + } + /// + /// Gets or Sets VarId + /// + [DataMember(Name = "id", EmitDefaultValue = true)] + public int VarId { get; set; } + /// + /// Returns the string presentation of the object + /// + /// String presentation of the object + public override string ToString() + { + StringBuilder sb = new StringBuilder(); + sb.Append("class Id {\n"); + sb.Append(" VarId: ").Append(VarId).Append("\n"); + sb.Append("}\n"); + return sb.ToString(); + } + /// + /// Returns the JSON string presentation of the object + /// + /// JSON string presentation of the object + public virtual string ToJson() + { + return Newtonsoft.Json.JsonConvert.SerializeObject(this, Newtonsoft.Json.Formatting.Indented); + } + /// + /// Returns true if objects are equal + /// + /// Object to be compared + /// Boolean + public override bool Equals(object input) + { + return this.Equals(input as Id); + } + /// + /// Returns true if Id instances are equal + /// + /// Instance of Id to be compared + /// Boolean + public bool Equals(Id input) + { + if (input == null) + { + return false; + } + return + ( + this.VarId == input.VarId || + this.VarId.Equals(input.VarId) + ); + } + /// + /// Gets the hash code + /// + /// Hash code + public override int GetHashCode() + { + unchecked // Overflow is fine, just wrap + { + int hashCode = 41; + hashCode = (hashCode * 59) + this.VarId.GetHashCode(); + return hashCode; + } + } + /// + /// To validate all properties of the instance + /// + /// Validation context + /// Validation Result + IEnumerable IValidatableObject.Validate(ValidationContext validationContext) + { + yield break; + } + } +} + /* * Bremen calling API * @@ -5366,9 +5508,10 @@ namespace BreCalClient.misc.Model /// lastName. /// userName. /// userPhone. + /// userEmail. /// exp. /// token. - public LoginResult(int id = default(int), int participantId = default(int), string firstName = default(string), string lastName = default(string), string userName = default(string), string userPhone = default(string), float exp = default(float), string token = default(string)) + public LoginResult(int id = default(int), int participantId = default(int), string firstName = default(string), string lastName = default(string), string userName = default(string), string userPhone = default(string), string userEmail = default(string), float exp = default(float), string token = default(string)) { this.Id = id; this.ParticipantId = participantId; @@ -5376,6 +5519,7 @@ namespace BreCalClient.misc.Model this.LastName = lastName; this.UserName = userName; this.UserPhone = userPhone; + this.UserEmail = userEmail; this.Exp = exp; this.Token = token; } @@ -5410,6 +5554,11 @@ namespace BreCalClient.misc.Model [DataMember(Name = "user_phone", EmitDefaultValue = true)] public string UserPhone { get; set; } /// + /// Gets or Sets UserEmail + /// + [DataMember(Name = "user_email", EmitDefaultValue = true)] + public string UserEmail { get; set; } + /// /// Gets or Sets Exp /// [DataMember(Name = "exp", EmitDefaultValue = true)] @@ -5433,6 +5582,7 @@ namespace BreCalClient.misc.Model sb.Append(" LastName: ").Append(LastName).Append("\n"); sb.Append(" UserName: ").Append(UserName).Append("\n"); sb.Append(" UserPhone: ").Append(UserPhone).Append("\n"); + sb.Append(" UserEmail: ").Append(UserEmail).Append("\n"); sb.Append(" Exp: ").Append(Exp).Append("\n"); sb.Append(" Token: ").Append(Token).Append("\n"); sb.Append("}\n"); @@ -5466,39 +5616,44 @@ namespace BreCalClient.misc.Model { return false; } - return + return ( this.Id == input.Id || this.Id.Equals(input.Id) - ) && + ) && ( this.ParticipantId == input.ParticipantId || this.ParticipantId.Equals(input.ParticipantId) - ) && + ) && ( this.FirstName == input.FirstName || (this.FirstName != null && this.FirstName.Equals(input.FirstName)) - ) && + ) && ( this.LastName == input.LastName || (this.LastName != null && this.LastName.Equals(input.LastName)) - ) && + ) && ( this.UserName == input.UserName || (this.UserName != null && this.UserName.Equals(input.UserName)) - ) && + ) && ( this.UserPhone == input.UserPhone || (this.UserPhone != null && this.UserPhone.Equals(input.UserPhone)) - ) && + ) && + ( + this.UserEmail == input.UserEmail || + (this.UserEmail != null && + this.UserEmail.Equals(input.UserEmail)) + ) && ( this.Exp == input.Exp || this.Exp.Equals(input.Exp) - ) && + ) && ( this.Token == input.Token || (this.Token != null && @@ -5532,6 +5687,10 @@ namespace BreCalClient.misc.Model { hashCode = (hashCode * 59) + this.UserPhone.GetHashCode(); } + if (this.UserEmail != null) + { + hashCode = (hashCode * 59) + this.UserEmail.GetHashCode(); + } hashCode = (hashCode * 59) + this.Exp.GetHashCode(); if (this.Token != null) { @@ -5700,37 +5859,37 @@ namespace BreCalClient.misc.Model { return false; } - return + return ( this.Id == input.Id || this.Id.Equals(input.Id) - ) && + ) && ( this.TimesId == input.TimesId || this.TimesId.Equals(input.TimesId) - ) && + ) && ( this.ParticipantId == input.ParticipantId || this.ParticipantId.Equals(input.ParticipantId) - ) && + ) && ( this.NotificationType == input.NotificationType || this.NotificationType.Equals(input.NotificationType) - ) && + ) && ( this.Timestamp == input.Timestamp || (this.Timestamp != null && this.Timestamp.Equals(input.Timestamp)) - ) && + ) && ( this.Acknowledged == input.Acknowledged || this.Acknowledged.Equals(input.Acknowledged) - ) && + ) && ( this.Created == input.Created || (this.Created != null && this.Created.Equals(input.Created)) - ) && + ) && ( this.Modified == input.Modified || (this.Modified != null && @@ -5920,50 +6079,50 @@ namespace BreCalClient.misc.Model { return false; } - return + return ( this.Id == input.Id || this.Id.Equals(input.Id) - ) && + ) && ( this.Name == input.Name || (this.Name != null && this.Name.Equals(input.Name)) - ) && + ) && ( this.Street == input.Street || (this.Street != null && this.Street.Equals(input.Street)) - ) && + ) && ( this.PostalCode == input.PostalCode || (this.PostalCode != null && this.PostalCode.Equals(input.PostalCode)) - ) && + ) && ( this.City == input.City || (this.City != null && this.City.Equals(input.City)) - ) && + ) && ( this.Type == input.Type || this.Type.Equals(input.Type) - ) && + ) && ( this.Flags == input.Flags || (this.Flags != null && this.Flags.Equals(input.Flags)) - ) && + ) && ( this.Created == input.Created || (this.Created != null && this.Created.Equals(input.Created)) - ) && + ) && ( this.Modified == input.Modified || (this.Modified != null && this.Modified.Equals(input.Modified)) - ) && + ) && ( this.Deleted == input.Deleted || this.Deleted.Equals(input.Deleted) @@ -6044,6 +6203,125 @@ namespace BreCalClient.misc.Model } } +/* + * Bremen calling API + * + * Administer DEBRE ship calls, times and notifications + * + * The version of the OpenAPI document: 0.6.0 + * Contact: info@textbausteine.net + * Generated by: https://github.com/openapitools/openapi-generator.git + */ +namespace BreCalClient.misc.Model +{ + /// + /// Participant assigned to a shipcall with a given role (type) + /// + [DataContract(Name = "participant_assignment")] + public partial class ParticipantAssignment : IEquatable, IValidatableObject + { + /// + /// Initializes a new instance of the class. + /// + [JsonConstructorAttribute] + protected ParticipantAssignment() { } + /// + /// Initializes a new instance of the class. + /// + /// participantId (required). + /// type (required). + public ParticipantAssignment(int participantId = default(int), int type = default(int)) + { + this.ParticipantId = participantId; + this.Type = type; + } + /// + /// Gets or Sets ParticipantId + /// + [DataMember(Name = "participant_id", IsRequired = true, EmitDefaultValue = true)] + public int ParticipantId { get; set; } + /// + /// Gets or Sets Type + /// + [DataMember(Name = "type", IsRequired = true, EmitDefaultValue = true)] + public int Type { get; set; } + /// + /// Returns the string presentation of the object + /// + /// String presentation of the object + public override string ToString() + { + StringBuilder sb = new StringBuilder(); + sb.Append("class ParticipantAssignment {\n"); + sb.Append(" ParticipantId: ").Append(ParticipantId).Append("\n"); + sb.Append(" Type: ").Append(Type).Append("\n"); + sb.Append("}\n"); + return sb.ToString(); + } + /// + /// Returns the JSON string presentation of the object + /// + /// JSON string presentation of the object + public virtual string ToJson() + { + return Newtonsoft.Json.JsonConvert.SerializeObject(this, Newtonsoft.Json.Formatting.Indented); + } + /// + /// Returns true if objects are equal + /// + /// Object to be compared + /// Boolean + public override bool Equals(object input) + { + return this.Equals(input as ParticipantAssignment); + } + /// + /// Returns true if ParticipantAssignment instances are equal + /// + /// Instance of ParticipantAssignment to be compared + /// Boolean + public bool Equals(ParticipantAssignment input) + { + if (input == null) + { + return false; + } + return + ( + this.ParticipantId == input.ParticipantId || + this.ParticipantId.Equals(input.ParticipantId) + ) && + ( + this.Type == input.Type || + this.Type.Equals(input.Type) + ); + } + /// + /// Gets the hash code + /// + /// Hash code + public override int GetHashCode() + { + unchecked // Overflow is fine, just wrap + { + int hashCode = 41; + hashCode = (hashCode * 59) + this.ParticipantId.GetHashCode(); + hashCode = (hashCode * 59) + this.Type.GetHashCode(); + return hashCode; + } + } + /// + /// To validate all properties of the instance + /// + /// Validation context + /// Validation Result + IEnumerable IValidatableObject.Validate(ValidationContext validationContext) + { + yield break; + } + } +} + /* * Bremen calling API * @@ -6210,65 +6488,65 @@ namespace BreCalClient.misc.Model { return false; } - return + return ( this.Id == input.Id || this.Id.Equals(input.Id) - ) && + ) && ( this.Name == input.Name || (this.Name != null && this.Name.Equals(input.Name)) - ) && + ) && ( this.Imo == input.Imo || (this.Imo != null && this.Imo.Equals(input.Imo)) - ) && + ) && ( this.Callsign == input.Callsign || (this.Callsign != null && this.Callsign.Equals(input.Callsign)) - ) && + ) && ( this.ParticipantId == input.ParticipantId || (this.ParticipantId != null && this.ParticipantId.Equals(input.ParticipantId)) - ) && + ) && ( this.Length == input.Length || (this.Length != null && this.Length.Equals(input.Length)) - ) && + ) && ( this.Width == input.Width || (this.Width != null && this.Width.Equals(input.Width)) - ) && + ) && ( this.IsTug == input.IsTug || this.IsTug.Equals(input.IsTug) - ) && + ) && ( this.BollardPull == input.BollardPull || (this.BollardPull != null && this.BollardPull.Equals(input.BollardPull)) - ) && + ) && ( this.Eni == input.Eni || (this.Eni != null && this.Eni.Equals(input.Eni)) - ) && + ) && ( this.Created == input.Created || (this.Created != null && this.Created.Equals(input.Created)) - ) && + ) && ( this.Modified == input.Modified || (this.Modified != null && this.Modified.Equals(input.Modified)) - ) && + ) && ( this.Deleted == input.Deleted || this.Deleted.Equals(input.Deleted) @@ -6379,7 +6657,7 @@ namespace BreCalClient.misc.Model /// The unique identifier of a ship call (required). /// shipId (required). /// type (required). - /// eta (required). + /// eta. /// voyage. /// etd. /// arrivalBerthId. @@ -6399,10 +6677,12 @@ namespace BreCalClient.misc.Model /// anchored. /// mooredLock. /// canceled. + /// evaluation. + /// evaluationMessage. /// participants. /// created. /// modified. - public Shipcall(int id = default(int), int shipId = default(int), int type = default(int), DateTime eta = default(DateTime), string voyage = default(string), DateTime? etd = default(DateTime?), int? arrivalBerthId = default(int?), int? departureBerthId = default(int?), bool? tugRequired = default(bool?), bool? pilotRequired = default(bool?), int? flags = default(int?), bool? pierSide = default(bool?), bool? bunkering = default(bool?), bool? replenishingTerminal = default(bool?), bool? replenishingLock = default(bool?), float? draft = default(float?), DateTime? tidalWindowFrom = default(DateTime?), DateTime? tidalWindowTo = default(DateTime?), bool? rainSensitiveCargo = default(bool?), int? recommendedTugs = default(int?), bool? anchored = default(bool?), bool? mooredLock = default(bool?), bool? canceled = default(bool?), List participants = default(List), DateTime created = default(DateTime), DateTime? modified = default(DateTime?)) + public Shipcall(int id = default(int), int shipId = default(int), int type = default(int), DateTime? eta = default(DateTime?), string voyage = default(string), DateTime? etd = default(DateTime?), int? arrivalBerthId = default(int?), int? departureBerthId = default(int?), bool? tugRequired = default(bool?), bool? pilotRequired = default(bool?), int? flags = default(int?), bool? pierSide = default(bool?), bool? bunkering = default(bool?), bool? replenishingTerminal = default(bool?), bool? replenishingLock = default(bool?), float? draft = default(float?), DateTime? tidalWindowFrom = default(DateTime?), DateTime? tidalWindowTo = default(DateTime?), bool? rainSensitiveCargo = default(bool?), int? recommendedTugs = default(int?), bool? anchored = default(bool?), bool? mooredLock = default(bool?), bool? canceled = default(bool?), int? evaluation = default(int?), string evaluationMessage = default(string), List participants = default(List), DateTime created = default(DateTime), DateTime? modified = default(DateTime?)) { this.Id = id; this.ShipId = shipId; @@ -6427,6 +6707,8 @@ namespace BreCalClient.misc.Model this.Anchored = anchored; this.MooredLock = mooredLock; this.Canceled = canceled; + this.Evaluation = evaluation; + this.EvaluationMessage = evaluationMessage; this.Participants = participants; this.Created = created; this.Modified = modified; @@ -6450,8 +6732,8 @@ namespace BreCalClient.misc.Model /// /// Gets or Sets Eta /// - [DataMember(Name = "eta", IsRequired = true, EmitDefaultValue = true)] - public DateTime Eta { get; set; } + [DataMember(Name = "eta", EmitDefaultValue = true)] + public DateTime? Eta { get; set; } /// /// Gets or Sets Voyage /// @@ -6548,11 +6830,20 @@ namespace BreCalClient.misc.Model [DataMember(Name = "canceled", EmitDefaultValue = true)] public bool? Canceled { get; set; } /// + /// Gets or Sets Evaluation + /// + [DataMember(Name = "evaluation", EmitDefaultValue = true)] + public int? Evaluation { get; set; } + /// + /// Gets or Sets EvaluationMessage + /// + [DataMember(Name = "evaluation_message", EmitDefaultValue = true)] + public string EvaluationMessage { get; set; } + /// /// Gets or Sets Participants /// - /// [1,5,7] [DataMember(Name = "participants", EmitDefaultValue = true)] - public List Participants { get; set; } + public List Participants { get; set; } /// /// Gets or Sets Created /// @@ -6594,6 +6885,8 @@ namespace BreCalClient.misc.Model sb.Append(" Anchored: ").Append(Anchored).Append("\n"); sb.Append(" MooredLock: ").Append(MooredLock).Append("\n"); sb.Append(" Canceled: ").Append(Canceled).Append("\n"); + sb.Append(" Evaluation: ").Append(Evaluation).Append("\n"); + sb.Append(" EvaluationMessage: ").Append(EvaluationMessage).Append("\n"); sb.Append(" Participants: ").Append(Participants).Append("\n"); sb.Append(" Created: ").Append(Created).Append("\n"); sb.Append(" Modified: ").Append(Modified).Append("\n"); @@ -6628,130 +6921,140 @@ namespace BreCalClient.misc.Model { return false; } - return + return ( this.Id == input.Id || this.Id.Equals(input.Id) - ) && + ) && ( this.ShipId == input.ShipId || this.ShipId.Equals(input.ShipId) - ) && + ) && ( this.Type == input.Type || this.Type.Equals(input.Type) - ) && + ) && ( this.Eta == input.Eta || (this.Eta != null && this.Eta.Equals(input.Eta)) - ) && + ) && ( this.Voyage == input.Voyage || (this.Voyage != null && this.Voyage.Equals(input.Voyage)) - ) && + ) && ( this.Etd == input.Etd || (this.Etd != null && this.Etd.Equals(input.Etd)) - ) && + ) && ( this.ArrivalBerthId == input.ArrivalBerthId || (this.ArrivalBerthId != null && this.ArrivalBerthId.Equals(input.ArrivalBerthId)) - ) && + ) && ( this.DepartureBerthId == input.DepartureBerthId || (this.DepartureBerthId != null && this.DepartureBerthId.Equals(input.DepartureBerthId)) - ) && + ) && ( this.TugRequired == input.TugRequired || (this.TugRequired != null && this.TugRequired.Equals(input.TugRequired)) - ) && + ) && ( this.PilotRequired == input.PilotRequired || (this.PilotRequired != null && this.PilotRequired.Equals(input.PilotRequired)) - ) && + ) && ( this.Flags == input.Flags || (this.Flags != null && this.Flags.Equals(input.Flags)) - ) && + ) && ( this.PierSide == input.PierSide || (this.PierSide != null && this.PierSide.Equals(input.PierSide)) - ) && + ) && ( this.Bunkering == input.Bunkering || (this.Bunkering != null && this.Bunkering.Equals(input.Bunkering)) - ) && + ) && ( this.ReplenishingTerminal == input.ReplenishingTerminal || (this.ReplenishingTerminal != null && this.ReplenishingTerminal.Equals(input.ReplenishingTerminal)) - ) && + ) && ( this.ReplenishingLock == input.ReplenishingLock || (this.ReplenishingLock != null && this.ReplenishingLock.Equals(input.ReplenishingLock)) - ) && + ) && ( this.Draft == input.Draft || (this.Draft != null && this.Draft.Equals(input.Draft)) - ) && + ) && ( this.TidalWindowFrom == input.TidalWindowFrom || (this.TidalWindowFrom != null && this.TidalWindowFrom.Equals(input.TidalWindowFrom)) - ) && + ) && ( this.TidalWindowTo == input.TidalWindowTo || (this.TidalWindowTo != null && this.TidalWindowTo.Equals(input.TidalWindowTo)) - ) && + ) && ( this.RainSensitiveCargo == input.RainSensitiveCargo || (this.RainSensitiveCargo != null && this.RainSensitiveCargo.Equals(input.RainSensitiveCargo)) - ) && + ) && ( this.RecommendedTugs == input.RecommendedTugs || (this.RecommendedTugs != null && this.RecommendedTugs.Equals(input.RecommendedTugs)) - ) && + ) && ( this.Anchored == input.Anchored || (this.Anchored != null && this.Anchored.Equals(input.Anchored)) - ) && + ) && ( this.MooredLock == input.MooredLock || (this.MooredLock != null && this.MooredLock.Equals(input.MooredLock)) - ) && + ) && ( this.Canceled == input.Canceled || (this.Canceled != null && this.Canceled.Equals(input.Canceled)) - ) && + ) && + ( + this.Evaluation == input.Evaluation || + (this.Evaluation != null && + this.Evaluation.Equals(input.Evaluation)) + ) && + ( + this.EvaluationMessage == input.EvaluationMessage || + (this.EvaluationMessage != null && + this.EvaluationMessage.Equals(input.EvaluationMessage)) + ) && ( this.Participants == input.Participants || this.Participants != null && input.Participants != null && this.Participants.SequenceEqual(input.Participants) - ) && + ) && ( this.Created == input.Created || (this.Created != null && this.Created.Equals(input.Created)) - ) && + ) && ( this.Modified == input.Modified || (this.Modified != null && @@ -6850,6 +7153,14 @@ namespace BreCalClient.misc.Model { hashCode = (hashCode * 59) + this.Canceled.GetHashCode(); } + if (this.Evaluation != null) + { + hashCode = (hashCode * 59) + this.Evaluation.GetHashCode(); + } + if (this.EvaluationMessage != null) + { + hashCode = (hashCode * 59) + this.EvaluationMessage.GetHashCode(); + } if (this.Participants != null) { hashCode = (hashCode * 59) + this.Participants.GetHashCode(); @@ -7109,99 +7420,99 @@ namespace BreCalClient.misc.Model { return false; } - return + return ( this.Id == input.Id || this.Id.Equals(input.Id) - ) && + ) && ( this.EtaBerth == input.EtaBerth || (this.EtaBerth != null && this.EtaBerth.Equals(input.EtaBerth)) - ) && + ) && ( this.EtaBerthFixed == input.EtaBerthFixed || (this.EtaBerthFixed != null && this.EtaBerthFixed.Equals(input.EtaBerthFixed)) - ) && + ) && ( this.EtdBerth == input.EtdBerth || (this.EtdBerth != null && this.EtdBerth.Equals(input.EtdBerth)) - ) && + ) && ( this.EtdBerthFixed == input.EtdBerthFixed || (this.EtdBerthFixed != null && this.EtdBerthFixed.Equals(input.EtdBerthFixed)) - ) && + ) && ( this.LockTime == input.LockTime || (this.LockTime != null && this.LockTime.Equals(input.LockTime)) - ) && + ) && ( this.LockTimeFixed == input.LockTimeFixed || (this.LockTimeFixed != null && this.LockTimeFixed.Equals(input.LockTimeFixed)) - ) && + ) && ( this.ZoneEntry == input.ZoneEntry || (this.ZoneEntry != null && this.ZoneEntry.Equals(input.ZoneEntry)) - ) && + ) && ( this.ZoneEntryFixed == input.ZoneEntryFixed || (this.ZoneEntryFixed != null && this.ZoneEntryFixed.Equals(input.ZoneEntryFixed)) - ) && + ) && ( this.OperationsStart == input.OperationsStart || (this.OperationsStart != null && this.OperationsStart.Equals(input.OperationsStart)) - ) && + ) && ( this.OperationsEnd == input.OperationsEnd || (this.OperationsEnd != null && this.OperationsEnd.Equals(input.OperationsEnd)) - ) && + ) && ( this.Remarks == input.Remarks || (this.Remarks != null && this.Remarks.Equals(input.Remarks)) - ) && + ) && ( this.ShipcallId == input.ShipcallId || this.ShipcallId.Equals(input.ShipcallId) - ) && + ) && ( this.ParticipantId == input.ParticipantId || this.ParticipantId.Equals(input.ParticipantId) - ) && + ) && ( this.BerthId == input.BerthId || (this.BerthId != null && this.BerthId.Equals(input.BerthId)) - ) && + ) && ( this.BerthInfo == input.BerthInfo || (this.BerthInfo != null && this.BerthInfo.Equals(input.BerthInfo)) - ) && + ) && ( this.PierSide == input.PierSide || (this.PierSide != null && this.PierSide.Equals(input.PierSide)) - ) && + ) && ( this.ParticipantType == input.ParticipantType || (this.ParticipantType != null && this.ParticipantType.Equals(input.ParticipantType)) - ) && + ) && ( this.Created == input.Created || (this.Created != null && this.Created.Equals(input.Created)) - ) && + ) && ( this.Modified == input.Modified || (this.Modified != null && @@ -7334,7 +7645,8 @@ namespace BreCalClient.misc.Model /// firstName. /// lastName. /// userPhone. - public UserDetails(int id = default(int), string oldPassword = default(string), string newPassword = default(string), string firstName = default(string), string lastName = default(string), string userPhone = default(string)) + /// userEmail. + public UserDetails(int id = default(int), string oldPassword = default(string), string newPassword = default(string), string firstName = default(string), string lastName = default(string), string userPhone = default(string), string userEmail = default(string)) { this.Id = id; this.OldPassword = oldPassword; @@ -7342,6 +7654,7 @@ namespace BreCalClient.misc.Model this.FirstName = firstName; this.LastName = lastName; this.UserPhone = userPhone; + this.UserEmail = userEmail; } /// /// Gets or Sets Id @@ -7374,6 +7687,11 @@ namespace BreCalClient.misc.Model [DataMember(Name = "user_phone", EmitDefaultValue = true)] public string UserPhone { get; set; } /// + /// Gets or Sets UserEmail + /// + [DataMember(Name = "user_email", EmitDefaultValue = true)] + public string UserEmail { get; set; } + /// /// Returns the string presentation of the object /// /// String presentation of the object @@ -7387,6 +7705,7 @@ namespace BreCalClient.misc.Model sb.Append(" FirstName: ").Append(FirstName).Append("\n"); sb.Append(" LastName: ").Append(LastName).Append("\n"); sb.Append(" UserPhone: ").Append(UserPhone).Append("\n"); + sb.Append(" UserEmail: ").Append(UserEmail).Append("\n"); sb.Append("}\n"); return sb.ToString(); } @@ -7418,35 +7737,40 @@ namespace BreCalClient.misc.Model { return false; } - return + return ( this.Id == input.Id || this.Id.Equals(input.Id) - ) && + ) && ( this.OldPassword == input.OldPassword || (this.OldPassword != null && this.OldPassword.Equals(input.OldPassword)) - ) && + ) && ( this.NewPassword == input.NewPassword || (this.NewPassword != null && this.NewPassword.Equals(input.NewPassword)) - ) && + ) && ( this.FirstName == input.FirstName || (this.FirstName != null && this.FirstName.Equals(input.FirstName)) - ) && + ) && ( this.LastName == input.LastName || (this.LastName != null && this.LastName.Equals(input.LastName)) - ) && + ) && ( this.UserPhone == input.UserPhone || (this.UserPhone != null && this.UserPhone.Equals(input.UserPhone)) + ) && + ( + this.UserEmail == input.UserEmail || + (this.UserEmail != null && + this.UserEmail.Equals(input.UserEmail)) ); } /// @@ -7479,6 +7803,10 @@ namespace BreCalClient.misc.Model { hashCode = (hashCode * 59) + this.UserPhone.GetHashCode(); } + if (this.UserEmail != null) + { + hashCode = (hashCode * 59) + this.UserEmail.GetHashCode(); + } return hashCode; } } diff --git a/misc/BreCalApi.yaml b/misc/BreCalApi.yaml index cb8acfc..917cd3a 100644 --- a/misc/BreCalApi.yaml +++ b/misc/BreCalApi.yaml @@ -14,7 +14,7 @@ info: servers: # tutorial: https://idratherbewriting.com/learnapidoc/pubapis_openapi_step3_servers_object.html - - url: "https://brecaltest.bsmd-emswe.eu/" + - url: "https://brecal.bsmd-emswe.eu/" description: "Test server hosted on vcup" paths: @@ -68,13 +68,13 @@ paths: /shipcalls: get: summary: Gets a list of ship calls - #parameters: - # - name: participant_id - # in: query - # required: true - # description: "**Id of participant**. *Example: 2*. Id of participant entity requesting ship calls" - # schema: - # type: integer + parameters: + - name: past_days + in: query + required: false + description: "number of days in the past to include in the result. *Example: 7*." + schema: + type: integer responses: 200: description: ship call list @@ -100,6 +100,8 @@ paths: schema: $ref: "#/components/schemas/shipcall" responses: + 201: + $ref: "#/components/responses/201" 400: $ref: "#/components/responses/400" 401: @@ -119,6 +121,8 @@ paths: schema: $ref: "#/components/schemas/shipcall" responses: + 200: + $ref: "#/components/responses/200" 400: $ref: "#/components/responses/400" 401: @@ -210,6 +214,8 @@ paths: schema: $ref: "#/components/schemas/times" responses: + 201: + $ref: "#/components/responses/201" 400: $ref: "#/components/responses/400" 401: @@ -229,6 +235,8 @@ paths: schema: $ref: "#/components/schemas/times" responses: + 200: + $ref: "#/components/responses/200" 400: $ref: "#/components/responses/400" 401: @@ -324,13 +332,23 @@ components: shipcallId: description: The unique identifier of a ship call type: integer + participant_assignment: + description: Participant assigned to a shipcall with a given role (type) + type: object + required: + - participant_id + - type + properties: + participant_id: + type: integer + type: + type: integer shipcall: type: object required: - id - ship_id - type - - eta properties: id: $ref: "#/components/schemas/shipcallId" @@ -342,6 +360,7 @@ components: eta: type: string format: date-time + nullable: true voyage: type: string maxLength: 16 @@ -404,11 +423,16 @@ components: canceled: type: boolean nullable: true + evaluation: + type: integer + nullable: true + evaluation_message: + type: string + nullable: true participants: type: array items: - type: integer - example: [1, 5, 7] + $ref: "#/components/schemas/participant_assignment" created: type: string format: date-time @@ -509,7 +533,10 @@ components: name: type: string maxLength: 128 - participant_id: + owner_id: + type: integer + nullable: true + authority_id: type: integer nullable: true lock: @@ -669,6 +696,8 @@ components: type: string user_phone: type: string + user_email: + type: string exp: type: number format: float @@ -696,7 +725,15 @@ components: user_phone: type: string nullable: true - + user_email: + type: string + nullable: true + Id: + type: object + description: A unique identifier for an entity + properties: + id: + type: integer Error: type: object required: @@ -712,6 +749,18 @@ components: in: header name: Authorization responses: + 200: + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/Id" + 201: + description: Created + content: + application/json: + schema: + $ref: "#/components/schemas/Id" 400: description: Invalid input content: diff --git a/misc/Deployment.md b/misc/Deployment.md new file mode 100644 index 0000000..21ee272 --- /dev/null +++ b/misc/Deployment.md @@ -0,0 +1,110 @@ +# System deployment + +___ + +## Prerequisites + +## Client + +## Database + +## Backend / Flask app + +In order to not have complicated and error-prone copying manoevers a direct deployment from the repo is used using git. + +### File structure + +### Steps + +1) Created a ssh-key for the user that does the installation on the server following the Github [instructions](https://docs.github.com/en/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent). +2) Deploy generated key to the Github user account. +3) In the shell, activate ssh-agent and add the key. For example: + +```bash +eval ($ssh-agent) +ssh-add ~/.ssh/od_ed25519 +``` + +4) Change to deployment folder + +```bash +cd /var/www/brecal_test +``` + +5) Perform sparse checkout on the Flask server subtree + +```bash +git clone -n git@github.com:puls200/brecal.git +cd +git sparse-checkout set --no-cone src/server +git checkout +``` + +6) Database credentials are stored outside the web root, we are using /var/www/secure. Here the file ```connection_data.json``` is placed, a different named copy for each instance. + + +### Installing Requirements +Python 3.11 & Pip3.11 installation (linux), virtualenv package + +Optional, Step 0: Python source installation +Windows (untested): + Python 3.11: https://www.geeksforgeeks.org/download-and-install-python-3-latest-version/ + PIP package manager (in command window): py -m ensurepip --upgrade + Virtual Environment 'virtualenv': https://mothergeo-py.readthedocs.io/en/latest/development/how-to/venv-win.html + +Linux: + Python 3.11 & the PIP package manager: https://tecadmin.net/how-to-install-python-3-11-on-ubuntu-22-04/ + +Virtual Environment 'virtualenv' + +### Building the Virtual Environment +Create a virtualenv called '.venv' with a specified python version, such as python3.11 +All python packages will be installed in the virtual environment. Upon running the application, +make sure to activate the virtual environment before starting it. + +Windows: # on windows, provide the full path, as obtained by "where python" +1.) Relocate to the 'brecal' directory + cd brecal + +2.) create a virtual environment with the name '.venv' + where python + virtualenv --python {python_path} .venv + +3.) activate the virtual environment and install + .venv\Scripts\activate + cd ./src/server + pip install -r requirements.txt + + +Linux: +1.) Relocate to the 'brecal' directory + cd brecal +2.) create a virtual environment with the name '.venv' + virtualenv --python python311 .venv +3.) activate the virtual environment and install + source .venv/bin/activate + cd ./src/server + pip install -r requirements.txt + + +### Testing (using 'pytest') +All tests in the directory brecal/src/server/tests can be run automatically with the 'pytest' module It recognizes any function within these +scripts, as these use 'test_'-prefixes. The module can be used to run the tests or even to create coverage reports, which show, what portions +of the directory are still untested. When the pytest module is installed, one can use a single line of code to run all tests. + +1.) Relocate to the application's directory + cd brecal/src/server +2.) activate the virtual environment +Windows: + source .venv\Scripts\activate +Linux: + source .venv\bin\activate +3.) run the tests + option1: run pytest as a standalone + pytest tests/ + + option2: run pytest & coverage report (inspects coverage for the folder 'BreCal' by running each test in 'tests/' + this creates a folder with the name 'coverage_reports', where .html files are created and can be observed by a developer. + the coverage files are typically ignored by .gitignore + pytest --cov BreCal tests/ + diff --git a/misc/create_schema.sql b/misc/create_schema.sql index dfa0cf1..adbe508 100644 --- a/misc/create_schema.sql +++ b/misc/create_schema.sql @@ -1,8 +1,6 @@ -CREATE DATABASE IF NOT EXISTS `bremen_calling` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci */ /*!80016 DEFAULT ENCRYPTION='N' */; -USE `bremen_calling`; -- MySQL dump 10.13 Distrib 8.0.33, for Win64 (x86_64) -- --- Host: localhost Database: bremen_calling +-- Host: localhost Database: bremen_calling_test -- ------------------------------------------------------ -- Server version 8.0.34-0ubuntu0.22.04.1 @@ -27,14 +25,17 @@ DROP TABLE IF EXISTS `berth`; CREATE TABLE `berth` ( `id` int unsigned NOT NULL AUTO_INCREMENT, `name` varchar(128) DEFAULT NULL COMMENT 'Descriptive name', - `participant_id` int unsigned DEFAULT NULL COMMENT 'If berth belongs to a participant, reference it here', `lock` bit(1) DEFAULT NULL COMMENT 'The lock must be used', + `owner_id` int unsigned DEFAULT NULL, + `authority_id` int unsigned DEFAULT NULL, `created` datetime DEFAULT CURRENT_TIMESTAMP, `modified` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP, `deleted` bit(1) DEFAULT b'0', PRIMARY KEY (`id`), - KEY `FK_BERTH_PART` (`participant_id`), - CONSTRAINT `FK_BERTH_PART` FOREIGN KEY (`participant_id`) REFERENCES `participant` (`id`) + KEY `FK_OWNER_PART_idx` (`owner_id`), + KEY `FK_AUTHORITY_PART_idx` (`authority_id`), + CONSTRAINT `FK_AUTHORITY_PART` FOREIGN KEY (`authority_id`) REFERENCES `participant` (`id`), + CONSTRAINT `FK_OWNER_PART` FOREIGN KEY (`owner_id`) REFERENCES `participant` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=195 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='Berth of ship for a ship call'; /*!40101 SET character_set_client = @saved_cs_client */; @@ -82,7 +83,7 @@ CREATE TABLE `participant` ( `modified` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP, `deleted` bit(1) DEFAULT b'0', PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=136 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='An organization taking part'; +) ENGINE=InnoDB AUTO_INCREMENT=137 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='An organization taking part'; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -165,7 +166,7 @@ CREATE TABLE `ship` ( PRIMARY KEY (`id`), KEY `FK_SHIP_PARTICIPANT` (`participant_id`), CONSTRAINT `FK_SHIP_PARTICIPANT` FOREIGN KEY (`participant_id`) REFERENCES `participant` (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; +) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -199,6 +200,8 @@ CREATE TABLE `shipcall` ( `anchored` bit(1) DEFAULT NULL, `moored_lock` bit(1) DEFAULT NULL, `canceled` bit(1) DEFAULT NULL, + `evaluation` int unsigned DEFAULT NULL, + `evaluation_message` varchar(512) DEFAULT NULL, `created` datetime DEFAULT CURRENT_TIMESTAMP, `modified` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`), @@ -208,7 +211,7 @@ CREATE TABLE `shipcall` ( CONSTRAINT `FK_SHIPCALL_BERTH_ARRIVAL` FOREIGN KEY (`arrival_berth_id`) REFERENCES `berth` (`id`), CONSTRAINT `FK_SHIPCALL_BERTH_DEPARTURE` FOREIGN KEY (`departure_berth_id`) REFERENCES `berth` (`id`), CONSTRAINT `FK_SHIPCALL_SHIP` FOREIGN KEY (`ship_id`) REFERENCES `ship` (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='Incoming, outgoing or moving to another berth'; +) ENGINE=InnoDB AUTO_INCREMENT=23 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='Incoming, outgoing or moving to another berth'; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -222,6 +225,7 @@ CREATE TABLE `shipcall_participant_map` ( `id` int NOT NULL AUTO_INCREMENT, `shipcall_id` int unsigned DEFAULT NULL, `participant_id` int unsigned DEFAULT NULL, + `type` int unsigned DEFAULT NULL COMMENT 'Type of participant role', `created` datetime DEFAULT CURRENT_TIMESTAMP, `modified` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`), @@ -229,7 +233,7 @@ CREATE TABLE `shipcall_participant_map` ( KEY `FK_MAP_SHIPCALL_PARTICIPANT` (`participant_id`), CONSTRAINT `FK_MAP_PARTICIPANT_SHIPCALL` FOREIGN KEY (`shipcall_id`) REFERENCES `shipcall` (`id`), CONSTRAINT `FK_MAP_SHIPCALL_PARTICIPANT` FOREIGN KEY (`participant_id`) REFERENCES `participant` (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=82 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='Associates a participant with a shipcall'; +) ENGINE=InnoDB AUTO_INCREMENT=128 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='Associates a participant with a shipcall'; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -287,7 +291,7 @@ CREATE TABLE `times` ( KEY `FK_TIME_BERTH` (`berth_id`) /*!80000 INVISIBLE */, CONSTRAINT `FK_TIME_BERTH` FOREIGN KEY (`berth_id`) REFERENCES `berth` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT, CONSTRAINT `FK_TIME_PART` FOREIGN KEY (`participant_id`) REFERENCES `participant` (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=28 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='the planned time for the participants work'; +) ENGINE=InnoDB AUTO_INCREMENT=44 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='the planned time for the participants work'; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -312,7 +316,7 @@ CREATE TABLE `user` ( PRIMARY KEY (`id`), KEY `FK_USER_PART` (`participant_id`), CONSTRAINT `FK_USER_PART` FOREIGN KEY (`participant_id`) REFERENCES `participant` (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=28 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='member of a participant'; +) ENGINE=InnoDB AUTO_INCREMENT=30 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='member of a participant'; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -345,4 +349,4 @@ CREATE TABLE `user_role_map` ( /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; --- Dump completed on 2023-09-05 10:36:12 +-- Dump completed on 2023-10-06 14:52:04 diff --git a/misc/sample_data.sql b/misc/sample_data.sql index b17697e..97c278a 100644 --- a/misc/sample_data.sql +++ b/misc/sample_data.sql @@ -1,8 +1,6 @@ -CREATE DATABASE IF NOT EXISTS `bremen_calling` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci */ /*!80016 DEFAULT ENCRYPTION='N' */; -USE `bremen_calling`; -- MySQL dump 10.13 Distrib 8.0.33, for Win64 (x86_64) -- --- Host: localhost Database: bremen_calling +-- Host: localhost Database: bremen_calling_test -- ------------------------------------------------------ -- Server version 8.0.34-0ubuntu0.22.04.1 @@ -23,7 +21,7 @@ USE `bremen_calling`; LOCK TABLES `berth` WRITE; /*!40000 ALTER TABLE `berth` DISABLE KEYS */; -INSERT INTO `berth` VALUES (1,'Roland Mühle',NULL,NULL,'2023-06-26 14:01:40',NULL,_binary '\0'),(2,'Stahlwerk',NULL,NULL,'2023-06-26 14:01:40',NULL,_binary '\0'),(3,'Kellogs',NULL,NULL,'2023-06-26 14:01:40',NULL,_binary '\0'),(139,'Avangard Dalben',110,NULL,'2023-08-21 08:23:35',NULL,_binary '\0'),(140,'Avangard Kaje',110,NULL,'2023-08-21 08:23:35',NULL,_binary '\0'),(141,'Baustelle 2',111,NULL,'2023-08-21 08:23:35',NULL,_binary '\0'),(142,'BHW',112,NULL,'2023-08-21 08:23:36',NULL,_binary '\0'),(143,'Dalben 2',111,NULL,'2023-08-21 08:23:36',NULL,_binary '\0'),(144,'Dalben 3',111,NULL,'2023-08-21 08:23:36',NULL,_binary '\0'),(145,'Egerland Kaje',113,NULL,'2023-08-21 08:23:36',NULL,_binary '\0'),(146,'Getreideanlage Pier A',114,NULL,'2023-08-21 08:23:37',NULL,_binary '\0'),(147,'Getreideanlage Pier D',114,NULL,'2023-08-21 08:23:37',NULL,_binary '\0'),(148,'Griepe, Bnp Paribas',115,NULL,'2023-08-21 08:23:37',NULL,_binary '\0'),(149,'Hafen F',116,NULL,'2023-08-21 08:23:37',NULL,_binary '\0'),(150,'Hansa Landhandel',117,NULL,'2023-08-21 08:23:38',NULL,_binary '\0'),(151,'Hansa Melasse',118,NULL,'2023-08-21 08:23:38',NULL,_binary '\0'),(152,'Hansa-Mühle',119,NULL,'2023-08-21 08:23:38',NULL,_binary '\0'),(153,'Heidelberger Sand',120,NULL,'2023-08-21 08:23:38',NULL,_binary '\0'),(154,'HGM Bunkerstation',121,NULL,'2023-08-21 08:23:39',NULL,_binary '\0'),(155,'HGM Tanklager',121,NULL,'2023-08-21 08:23:39',NULL,_binary '\0'),(156,'Kap Horn Innen',122,NULL,'2023-08-21 08:23:39',NULL,_binary '\0'),(157,'Kap Horn Weser',122,NULL,'2023-08-21 08:23:39',NULL,_binary '\0'),(158,'Kap Horn Weser Bremer Recycling',123,NULL,'2023-08-21 08:23:40',NULL,_binary '\0'),(159,'Kap Horn Weser -GHK-',124,NULL,'2023-08-21 08:23:40',NULL,_binary '\0'),(160,'Kohlenhafen 2',111,NULL,'2023-08-21 08:23:40',NULL,_binary '\0'),(161,'Kraftwerk Farge',125,NULL,'2023-08-21 08:23:40',NULL,_binary '\0'),(162,'Kraftwerk Industriehafen',126,NULL,'2023-08-21 08:23:41',NULL,_binary '\0'),(163,'Lankenau B',111,NULL,'2023-08-21 08:23:41',NULL,_binary '\0'),(164,'Mibau, Bnp Paribas',127,NULL,'2023-08-21 08:23:41',NULL,_binary '\0'),(165,'Müller Weser',114,NULL,'2023-08-21 08:23:41',NULL,_binary '\0'),(166,'Osterort 5 Aussen',111,NULL,'2023-08-21 08:23:41',NULL,_binary '\0'),(167,'Pier 2 Anleger',128,NULL,'2023-08-21 08:23:42',NULL,_binary '\0'),(168,'Pier III',129,NULL,'2023-08-21 08:23:42',NULL,_binary '\0'),(169,'Plump',130,NULL,'2023-08-21 08:23:42',NULL,_binary '\0'),(170,'Rolandmühle',131,NULL,'2023-08-21 08:23:42',NULL,_binary '\0'),(171,'Schleusenvorhafen Nord',111,NULL,'2023-08-21 08:23:43',NULL,_binary '\0'),(172,'Schrägpier',4,NULL,'2023-08-21 08:23:43',NULL,_binary '\0'),(173,'Schuppen 19',132,NULL,'2023-08-21 08:23:43',NULL,_binary '\0'),(174,'Schuppen 20',4,NULL,'2023-08-21 08:23:43',NULL,_binary '\0'),(175,'Schuppen 21',4,NULL,'2023-08-21 08:23:43',NULL,_binary '\0'),(176,'Schuppen 22',4,NULL,'2023-08-21 08:23:43',NULL,_binary '\0'),(177,'Schuppen 23',4,NULL,'2023-08-21 08:23:44',NULL,_binary '\0'),(178,'Schuppen 24',4,NULL,'2023-08-21 08:23:44',NULL,_binary '\0'),(179,'Seedalben Dlg-Seite',111,NULL,'2023-08-21 08:23:44',NULL,_binary '\0'),(180,'Seedalben Kw-Seite',111,NULL,'2023-08-21 08:23:44',NULL,_binary '\0'),(181,'Seehausen Spüler',111,NULL,'2023-08-21 08:23:44',NULL,_binary '\0'),(182,'Tankschiffliegeplatz 1',111,NULL,'2023-08-21 08:23:44',NULL,_binary '\0'),(183,'Tankschiffliegeplatz 2',111,NULL,'2023-08-21 08:23:44',NULL,_binary '\0'),(184,'Terminal 1',10,NULL,'2023-08-21 08:23:44',NULL,_binary '\0'),(185,'Terminal 2',10,NULL,'2023-08-21 08:23:45',NULL,_binary '\0'),(186,'Terminal 3',10,NULL,'2023-08-21 08:23:45',NULL,_binary '\0'),(187,'Terminal 4',10,NULL,'2023-08-21 08:23:45',NULL,_binary '\0'),(188,'TSR Recycling',133,NULL,'2023-08-21 08:23:45',NULL,_binary '\0'),(189,'Viehbrücke',111,NULL,'2023-08-21 08:23:45',NULL,_binary '\0'),(190,'Vulkan Industriegebiet',120,NULL,'2023-08-21 08:23:46',NULL,_binary '\0'),(191,'Weserbahnhof',132,NULL,'2023-08-21 08:23:46',NULL,_binary '\0'),(192,'Weser-Petrol Holzhafen',134,NULL,'2023-08-21 08:23:46',NULL,_binary '\0'),(193,'Weser-Petrol Kalihafen',134,NULL,'2023-08-21 08:23:46',NULL,_binary '\0'),(194,'Wesertanking',135,NULL,'2023-08-21 08:23:46',NULL,_binary '\0'); +INSERT INTO `berth` VALUES (1,'Roland Mühle',NULL,NULL,NULL,11,'2023-06-26 14:01:40','2023-10-06 15:04:08',_binary ''),(2,'Stahlwerk',NULL,NULL,NULL,11,'2023-06-26 14:01:40','2023-10-06 15:04:08',_binary ''),(3,'Kellogs',NULL,NULL,NULL,11,'2023-06-26 14:01:40','2023-10-06 15:04:08',_binary ''),(139,'Avangard Dalben',110,NULL,110,11,'2023-08-21 08:23:35','2023-10-06 15:04:08',_binary '\0'),(140,'Avangard Kaje',110,NULL,110,11,'2023-08-21 08:23:35','2023-10-06 15:04:08',_binary '\0'),(141,'Baustelle 2',111,NULL,111,11,'2023-08-21 08:23:35','2023-10-06 15:04:08',_binary '\0'),(142,'BHW',112,NULL,112,11,'2023-08-21 08:23:36','2023-10-06 15:04:08',_binary '\0'),(143,'Dalben 2',111,NULL,111,11,'2023-08-21 08:23:36','2023-10-06 15:04:08',_binary '\0'),(144,'Dalben 3',111,NULL,111,11,'2023-08-21 08:23:36','2023-10-06 15:04:08',_binary '\0'),(145,'Egerland Kaje',113,NULL,113,11,'2023-08-21 08:23:36','2023-10-06 15:04:08',_binary '\0'),(146,'Getreideanlage Pier A',114,NULL,114,11,'2023-08-21 08:23:37','2023-10-06 15:04:08',_binary '\0'),(147,'Getreideanlage Pier D',114,NULL,114,11,'2023-08-21 08:23:37','2023-10-06 15:04:08',_binary '\0'),(148,'Griepe, Bnp Paribas',115,NULL,115,11,'2023-08-21 08:23:37','2023-10-06 15:04:08',_binary '\0'),(149,'Hafen F',116,NULL,116,11,'2023-08-21 08:23:37','2023-10-06 15:04:08',_binary '\0'),(150,'Hansa Landhandel',117,NULL,117,11,'2023-08-21 08:23:38','2023-10-06 15:04:08',_binary '\0'),(151,'Hansa Melasse',118,NULL,118,11,'2023-08-21 08:23:38','2023-10-06 15:04:08',_binary '\0'),(152,'Hansa-Mühle',119,NULL,119,11,'2023-08-21 08:23:38','2023-10-06 15:04:08',_binary '\0'),(153,'Heidelberger Sand',120,NULL,120,11,'2023-08-21 08:23:38','2023-10-06 15:04:08',_binary '\0'),(154,'HGM Bunkerstation',121,NULL,121,11,'2023-08-21 08:23:39','2023-10-06 15:04:08',_binary '\0'),(155,'HGM Tanklager',121,NULL,121,11,'2023-08-21 08:23:39','2023-10-06 15:04:08',_binary '\0'),(156,'Kap Horn Innen',122,NULL,122,11,'2023-08-21 08:23:39','2023-10-06 15:04:08',_binary '\0'),(157,'Kap Horn Weser',122,NULL,122,11,'2023-08-21 08:23:39','2023-10-06 15:04:08',_binary '\0'),(158,'Kap Horn Weser Bremer Recycling',123,NULL,123,11,'2023-08-21 08:23:40','2023-10-06 15:04:08',_binary '\0'),(159,'Kap Horn Weser -GHK-',124,NULL,124,11,'2023-08-21 08:23:40','2023-10-06 15:04:08',_binary '\0'),(160,'Kohlenhafen 2',111,NULL,111,11,'2023-08-21 08:23:40','2023-10-06 15:04:08',_binary '\0'),(161,'Kraftwerk Farge',125,NULL,125,11,'2023-08-21 08:23:40','2023-10-06 15:04:08',_binary '\0'),(162,'Kraftwerk Industriehafen',126,NULL,126,11,'2023-08-21 08:23:41','2023-10-06 15:04:08',_binary '\0'),(163,'Lankenau B',111,NULL,111,11,'2023-08-21 08:23:41','2023-10-06 15:04:08',_binary '\0'),(164,'Mibau, Bnp Paribas',127,NULL,127,11,'2023-08-21 08:23:41','2023-10-06 15:04:08',_binary '\0'),(165,'Müller Weser',114,NULL,114,11,'2023-08-21 08:23:41','2023-10-06 15:04:08',_binary '\0'),(166,'Osterort 5 Aussen',111,NULL,111,11,'2023-08-21 08:23:41','2023-10-06 15:04:08',_binary '\0'),(167,'Pier 2 Anleger',128,NULL,128,11,'2023-08-21 08:23:42','2023-10-06 15:04:08',_binary '\0'),(168,'Pier III',129,NULL,129,11,'2023-08-21 08:23:42','2023-10-06 15:04:08',_binary '\0'),(169,'Plump',130,NULL,130,11,'2023-08-21 08:23:42','2023-10-06 15:04:08',_binary '\0'),(170,'Rolandmühle',131,NULL,131,11,'2023-08-21 08:23:42','2023-10-06 15:04:08',_binary '\0'),(171,'Schleusenvorhafen Nord',111,NULL,111,11,'2023-08-21 08:23:43','2023-10-06 15:04:08',_binary '\0'),(172,'Schrägpier',4,NULL,4,11,'2023-08-21 08:23:43','2023-10-06 15:04:08',_binary '\0'),(173,'Schuppen 19',132,NULL,132,11,'2023-08-21 08:23:43','2023-10-06 15:04:08',_binary '\0'),(174,'Schuppen 20',4,NULL,4,11,'2023-08-21 08:23:43','2023-10-06 15:04:08',_binary '\0'),(175,'Schuppen 21',4,NULL,4,11,'2023-08-21 08:23:43','2023-10-06 15:04:08',_binary '\0'),(176,'Schuppen 22',4,NULL,4,11,'2023-08-21 08:23:43','2023-10-06 15:04:08',_binary '\0'),(177,'Schuppen 23',4,NULL,4,11,'2023-08-21 08:23:44','2023-10-06 15:04:08',_binary '\0'),(178,'Schuppen 24',4,NULL,4,11,'2023-08-21 08:23:44','2023-10-06 15:04:08',_binary '\0'),(179,'Seedalben Dlg-Seite',111,NULL,111,11,'2023-08-21 08:23:44','2023-10-06 15:04:08',_binary '\0'),(180,'Seedalben Kw-Seite',111,NULL,111,11,'2023-08-21 08:23:44','2023-10-06 15:04:08',_binary '\0'),(181,'Seehausen Spüler',111,NULL,111,11,'2023-08-21 08:23:44','2023-10-06 15:04:08',_binary '\0'),(182,'Tankschiffliegeplatz 1',111,NULL,111,11,'2023-08-21 08:23:44','2023-10-06 15:04:08',_binary '\0'),(183,'Tankschiffliegeplatz 2',111,NULL,111,11,'2023-08-21 08:23:44','2023-10-06 15:04:08',_binary '\0'),(184,'Terminal 1',10,NULL,10,11,'2023-08-21 08:23:44','2023-10-06 15:04:08',_binary '\0'),(185,'Terminal 2',10,NULL,10,11,'2023-08-21 08:23:45','2023-10-06 15:04:08',_binary '\0'),(186,'Terminal 3',10,NULL,10,11,'2023-08-21 08:23:45','2023-10-06 15:04:08',_binary '\0'),(187,'Terminal 4',10,NULL,10,11,'2023-08-21 08:23:45','2023-10-06 15:04:08',_binary '\0'),(188,'TSR Recycling',133,NULL,133,11,'2023-08-21 08:23:45','2023-10-06 15:04:08',_binary '\0'),(189,'Viehbrücke',111,NULL,111,11,'2023-08-21 08:23:45','2023-10-06 15:04:08',_binary '\0'),(190,'Vulkan Industriegebiet',120,NULL,120,11,'2023-08-21 08:23:46','2023-10-06 15:04:08',_binary '\0'),(191,'Weserbahnhof',132,NULL,132,11,'2023-08-21 08:23:46','2023-10-06 15:04:08',_binary '\0'),(192,'Weser-Petrol Holzhafen',134,NULL,134,11,'2023-08-21 08:23:46','2023-10-06 15:04:08',_binary '\0'),(193,'Weser-Petrol Kalihafen',134,NULL,134,11,'2023-08-21 08:23:46','2023-10-06 15:04:08',_binary '\0'),(194,'Wesertanking',135,NULL,135,11,'2023-08-21 08:23:46','2023-10-06 15:04:08',_binary '\0'); /*!40000 ALTER TABLE `berth` ENABLE KEYS */; UNLOCK TABLES; @@ -42,7 +40,7 @@ UNLOCK TABLES; LOCK TABLES `participant` WRITE; /*!40000 ALTER TABLE `participant` DISABLE KEYS */; -INSERT INTO `participant` VALUES (1,'Schick Informatik','Gottlieb-Daimler-Str. 8','73614','Schorndorf',1,42,'2023-04-17 07:18:19','2023-08-24 07:07:02',_binary '\0'),(2,'Lotsenbrüderschaft Weser 1','','','',4,0,'2023-08-10 07:07:41',NULL,_binary '\0'),(3,'Bremer Schiffsmeldedienst','Hafenkopf II / Überseetor 20','28217','Bremen',1,0,'2023-08-10 07:11:10',NULL,_binary '\0'),(4,'BLG Cargo Logistics GmbH','','','',2,0,'2023-08-10 07:14:40',NULL,_binary '\0'),(5,'Schiffsmakler-Verband für Küsten und Seeschiffsbefrachter e.V.','','','',8,0,'2023-08-10 07:15:56',NULL,_binary '\0'),(6,'RMS Rhenus Maritime Services GmbH','','','',8,0,'2023-08-10 07:19:29',NULL,_binary '\0'),(7,'J.MÜLLER Weser GmbH & Co. KG','','','',10,0,'2023-08-10 07:21:43','2023-08-10 08:47:59',_binary '\0'),(8,'Schiffahrtskontor Detra GmbH & Co.KG','','','',8,0,'2023-08-10 07:23:04',NULL,_binary '\0'),(9,'Boluda Deutschland GmbH','','','',64,0,'2023-08-10 07:24:18',NULL,_binary '\0'),(10,'Weserport GmbH','','','',10,0,'2023-08-10 07:26:42','2023-08-10 08:48:19',_binary '\0'),(11,'Port Authority Bremen','','','',32,0,'2023-08-10 07:28:11',NULL,_binary '\0'),(12,'Nordenia Frachtkontor GmbH','','','',8,0,'2023-08-21 06:52:04',NULL,_binary '\0'),(15,'Extern','','','',0,0,'2023-08-21 06:55:18',NULL,_binary '\0'),(16,'FESTMA Vertäugesellschaft mbH','','','',16,0,'2023-08-21 06:57:23',NULL,_binary '\0'),(110,'Avangard',NULL,NULL,NULL,2,0,'2023-08-21 08:23:35','2023-08-21 10:04:21',_binary '\0'),(111,'Bremenports',NULL,NULL,NULL,2,0,'2023-08-21 08:23:35','2023-08-21 10:04:21',_binary '\0'),(112,'Bremer Holzwerke',NULL,NULL,NULL,2,0,'2023-08-21 08:23:36','2023-08-21 10:04:21',_binary '\0'),(113,'Egerland',NULL,NULL,NULL,2,0,'2023-08-21 08:23:36','2023-08-21 10:04:21',_binary '\0'),(114,'Müller J. Bremen',NULL,NULL,NULL,2,0,'2023-08-21 08:23:37','2023-08-21 10:04:21',_binary '\0'),(115,'Griepe',NULL,NULL,NULL,2,0,'2023-08-21 08:23:37','2023-08-21 10:04:21',_binary '\0'),(116,'Mseven Real Estate',NULL,NULL,NULL,2,0,'2023-08-21 08:23:37','2023-08-21 10:04:21',_binary '\0'),(117,'Hansa Landhandel',NULL,NULL,NULL,2,0,'2023-08-21 08:23:38','2023-08-21 10:04:21',_binary '\0'),(118,'Hansa Melasse',NULL,NULL,NULL,2,0,'2023-08-21 08:23:38','2023-08-21 10:04:21',_binary '\0'),(119,'Hansa-Mühle',NULL,NULL,NULL,2,0,'2023-08-21 08:23:38','2023-08-21 10:04:21',_binary '\0'),(120,'Heidelberger Sand Und Kies Gmbh',NULL,NULL,NULL,2,0,'2023-08-21 08:23:38','2023-08-21 10:04:21',_binary '\0'),(121,'HGM',NULL,NULL,NULL,2,0,'2023-08-21 08:23:39','2023-08-21 10:04:21',_binary '\0'),(122,'Kap-Horn Logistics Gmbh',NULL,NULL,NULL,2,0,'2023-08-21 08:23:39','2023-08-21 10:04:21',_binary '\0'),(123,'Bremer Recycling Kontor',NULL,NULL,NULL,2,0,'2023-08-21 08:23:39','2023-08-21 10:04:21',_binary '\0'),(124,'GHK',NULL,NULL,NULL,2,0,'2023-08-21 08:23:40','2023-08-21 10:04:21',_binary '\0'),(125,'Kraftwerk Farge Engie Gmbh & Co. KG',NULL,NULL,NULL,2,0,'2023-08-21 08:23:40','2023-08-21 10:04:21',_binary '\0'),(126,'Swb Erzeugung',NULL,NULL,NULL,2,0,'2023-08-21 08:23:40','2023-08-21 10:04:21',_binary '\0'),(127,'Mibau',NULL,NULL,NULL,2,0,'2023-08-21 08:23:41','2023-08-21 10:04:21',_binary '\0'),(128,'SWG',NULL,NULL,NULL,2,0,'2023-08-21 08:23:41','2023-08-21 10:04:21',_binary '\0'),(129,'Umweltschutz Nord Ganderkesee',NULL,NULL,NULL,2,0,'2023-08-21 08:23:42','2023-08-21 10:04:21',_binary '\0'),(130,'Nehlsen Industrieservice Gmbh & Co. KG',NULL,NULL,NULL,2,0,'2023-08-21 08:23:42','2023-08-21 10:04:21',_binary '\0'),(131,'Rolandmühle',NULL,NULL,NULL,2,0,'2023-08-21 08:23:42','2023-08-21 10:04:21',_binary '\0'),(132,'Wfb',NULL,NULL,NULL,2,0,'2023-08-21 08:23:43','2023-08-21 10:04:21',_binary '\0'),(133,'TSR',NULL,NULL,NULL,2,0,'2023-08-21 08:23:45','2023-08-21 10:04:21',_binary '\0'),(134,'Weser-Petrol',NULL,NULL,NULL,2,0,'2023-08-21 08:23:46','2023-08-21 10:04:21',_binary '\0'),(135,'Wesertanking',NULL,NULL,NULL,2,0,'2023-08-21 08:23:46','2023-08-21 10:04:21',_binary '\0'); +INSERT INTO `participant` VALUES (1,'Schick Informatik','Gottlieb-Daimler-Str. 8','73614','Schorndorf',1,42,'2023-04-17 07:18:19','2023-08-24 07:07:02',_binary '\0'),(2,'Lotsenbrüderschaft Weser 1','','','',4,0,'2023-08-10 07:07:41',NULL,_binary '\0'),(3,'Bremer Schiffsmeldedienst','Hafenkopf II / Überseetor 20','28217','Bremen',1,0,'2023-08-10 07:11:10',NULL,_binary '\0'),(4,'BLG Cargo Logistics GmbH','','','',2,0,'2023-08-10 07:14:40',NULL,_binary '\0'),(5,'Schiffsmakler-Verband für Küsten und Seeschiffsbefrachter e.V.','','','',8,0,'2023-08-10 07:15:56',NULL,_binary '\0'),(6,'RMS Rhenus Maritime Services GmbH','','','',8,1,'2023-08-10 07:19:29','2023-09-06 09:02:53',_binary '\0'),(7,'J.MÜLLER Weser GmbH & Co. KG','','','',10,0,'2023-08-10 07:21:43','2023-08-10 08:47:59',_binary '\0'),(8,'Schiffahrtskontor Detra GmbH & Co.KG','','','',8,0,'2023-08-10 07:23:04',NULL,_binary '\0'),(9,'Boluda Deutschland GmbH','','','',64,0,'2023-08-10 07:24:18',NULL,_binary '\0'),(10,'Weserport GmbH','','','',10,0,'2023-08-10 07:26:42','2023-08-10 08:48:19',_binary '\0'),(11,'Port Authority Bremen','','','',32,0,'2023-08-10 07:28:11',NULL,_binary '\0'),(12,'Nordenia Frachtkontor GmbH','','','',8,0,'2023-08-21 06:52:04',NULL,_binary '\0'),(15,'Extern','','','',0,0,'2023-08-21 06:55:18',NULL,_binary '\0'),(16,'FESTMA Vertäugesellschaft mbH','','','',16,0,'2023-08-21 06:57:23',NULL,_binary '\0'),(110,'Avangard',NULL,NULL,NULL,2,0,'2023-08-21 08:23:35','2023-08-21 10:04:21',_binary '\0'),(111,'Bremenports',NULL,NULL,NULL,2,0,'2023-08-21 08:23:35','2023-08-21 10:04:21',_binary '\0'),(112,'Bremer Holzwerke',NULL,NULL,NULL,2,0,'2023-08-21 08:23:36','2023-08-21 10:04:21',_binary '\0'),(113,'Egerland',NULL,NULL,NULL,2,0,'2023-08-21 08:23:36','2023-08-21 10:04:21',_binary '\0'),(114,'Müller J. Bremen',NULL,NULL,NULL,2,0,'2023-08-21 08:23:37','2023-08-21 10:04:21',_binary '\0'),(115,'Griepe',NULL,NULL,NULL,2,0,'2023-08-21 08:23:37','2023-08-21 10:04:21',_binary '\0'),(116,'Mseven Real Estate',NULL,NULL,NULL,2,0,'2023-08-21 08:23:37','2023-08-21 10:04:21',_binary '\0'),(117,'Hansa Landhandel',NULL,NULL,NULL,2,0,'2023-08-21 08:23:38','2023-08-21 10:04:21',_binary '\0'),(118,'Hansa Melasse',NULL,NULL,NULL,2,0,'2023-08-21 08:23:38','2023-08-21 10:04:21',_binary '\0'),(119,'Hansa-Mühle',NULL,NULL,NULL,2,0,'2023-08-21 08:23:38','2023-08-21 10:04:21',_binary '\0'),(120,'Heidelberger Sand Und Kies Gmbh',NULL,NULL,NULL,2,0,'2023-08-21 08:23:38','2023-08-21 10:04:21',_binary '\0'),(121,'HGM',NULL,NULL,NULL,2,0,'2023-08-21 08:23:39','2023-08-21 10:04:21',_binary '\0'),(122,'Kap-Horn Logistics Gmbh',NULL,NULL,NULL,2,0,'2023-08-21 08:23:39','2023-08-21 10:04:21',_binary '\0'),(123,'Bremer Recycling Kontor',NULL,NULL,NULL,2,0,'2023-08-21 08:23:39','2023-08-21 10:04:21',_binary '\0'),(124,'GHK',NULL,NULL,NULL,2,0,'2023-08-21 08:23:40','2023-08-21 10:04:21',_binary '\0'),(125,'Kraftwerk Farge Engie Gmbh & Co. KG',NULL,NULL,NULL,2,0,'2023-08-21 08:23:40','2023-08-21 10:04:21',_binary '\0'),(126,'Swb Erzeugung',NULL,NULL,NULL,2,0,'2023-08-21 08:23:40','2023-08-21 10:04:21',_binary '\0'),(127,'Mibau',NULL,NULL,NULL,2,0,'2023-08-21 08:23:41','2023-08-21 10:04:21',_binary '\0'),(128,'SWG',NULL,NULL,NULL,2,0,'2023-08-21 08:23:41','2023-08-21 10:04:21',_binary '\0'),(129,'Umweltschutz Nord Ganderkesee',NULL,NULL,NULL,2,0,'2023-08-21 08:23:42','2023-08-21 10:04:21',_binary '\0'),(130,'Nehlsen Industrieservice Gmbh & Co. KG',NULL,NULL,NULL,2,0,'2023-08-21 08:23:42','2023-08-21 10:04:21',_binary '\0'),(131,'Rolandmühle',NULL,NULL,NULL,2,0,'2023-08-21 08:23:42','2023-08-21 10:04:21',_binary '\0'),(132,'Wfb',NULL,NULL,NULL,2,0,'2023-08-21 08:23:43','2023-08-21 10:04:21',_binary '\0'),(133,'TSR',NULL,NULL,NULL,2,0,'2023-08-21 08:23:45','2023-08-21 10:04:21',_binary '\0'),(134,'Weser-Petrol',NULL,NULL,NULL,2,0,'2023-08-21 08:23:46','2023-08-21 10:04:21',_binary '\0'),(135,'Wesertanking',NULL,NULL,NULL,2,0,'2023-08-21 08:23:46','2023-08-21 10:04:21',_binary '\0'),(136,'TEST_BSMD','Überseetor 20','28217','Bremen',127,0,'2023-10-04 11:54:36',NULL,_binary '\0'); /*!40000 ALTER TABLE `participant` ENABLE KEYS */; UNLOCK TABLES; @@ -81,7 +79,7 @@ UNLOCK TABLES; LOCK TABLES `ship` WRITE; /*!40000 ALTER TABLE `ship` DISABLE KEYS */; -INSERT INTO `ship` VALUES (1,'Dicke Berta',1234567,'DEBE',1,100,20,_binary '\0',NULL,NULL,'2023-06-27 10:43:02',NULL,_binary '\0'),(2,'Maersk Neston',9632167,'9V3532',1,210.07,30.2,_binary '\0',NULL,NULL,'2023-07-27 12:34:13',NULL,_binary '\0'),(3,'AFRICAN HALCYON',9343613,NULL,NULL,177.13,28.4,_binary '\0',NULL,NULL,'2023-08-24 10:41:56',NULL,_binary '\0'),(4,'AMIKO',9125669,NULL,NULL,99.98,16.5,_binary '\0',NULL,NULL,'2023-08-24 10:42:17',NULL,_binary '\0'),(5,'ARKLOW BEACON',9638795,NULL,NULL,119.49,14.99,_binary '\0',NULL,NULL,'2023-08-24 10:42:17',NULL,_binary '\0'),(6,'FWN ATLANTIDE',9535620,NULL,NULL,145.65,18.25,_binary '\0',NULL,NULL,'2023-08-24 10:42:17',NULL,_binary '\0'),(7,'IONIAN SPIRIT',9747235,NULL,NULL,179.9,30,_binary '\0',NULL,NULL,'2023-08-24 10:42:17',NULL,_binary '\0'),(8,'IRMA',9180396,NULL,NULL,199.9,23.6,_binary '\0',NULL,NULL,'2023-08-24 10:42:17',NULL,_binary '\0'),(9,'JANA',9330185,NULL,NULL,69.34,12,_binary '\0',NULL,NULL,'2023-08-24 10:42:18',NULL,_binary '\0'),(10,'MEDI PERTH',9804552,NULL,NULL,199.99,32.24,_binary '\0',NULL,NULL,'2023-08-24 10:42:18',NULL,_binary '\0'),(11,'S NEPTUNE',9634892,NULL,NULL,169.99,27,_binary '\0',NULL,NULL,'2023-08-24 10:42:18',NULL,_binary '\0'),(12,'WESER STAHL',9186687,NULL,NULL,192,32.26,_binary '\0',NULL,NULL,'2023-08-24 10:42:18',NULL,_binary '\0'); +INSERT INTO `ship` VALUES (1,'Dicke Berta',1234567,'DEBE',1,100,20,_binary '\0',NULL,NULL,'2023-06-27 10:43:02',NULL,_binary '\0'),(2,'Maersk Neston',9632167,'9V3532',1,210.07,30.2,_binary '\0',NULL,NULL,'2023-07-27 12:34:13',NULL,_binary '\0'),(3,'AFRICAN HALCYON',9343613,NULL,NULL,177.13,28.4,_binary '\0',NULL,NULL,'2023-08-24 10:41:56',NULL,_binary '\0'),(4,'AMIKO',9125669,NULL,NULL,99.98,16.5,_binary '\0',NULL,NULL,'2023-08-24 10:42:17',NULL,_binary '\0'),(5,'ARKLOW BEACON',9638795,NULL,NULL,119.49,14.99,_binary '\0',NULL,NULL,'2023-08-24 10:42:17',NULL,_binary '\0'),(6,'FWN ATLANTIDE',9535620,NULL,NULL,145.65,18.25,_binary '\0',NULL,NULL,'2023-08-24 10:42:17',NULL,_binary '\0'),(7,'IONIAN SPIRIT',9747235,NULL,NULL,179.9,30,_binary '\0',NULL,NULL,'2023-08-24 10:42:17',NULL,_binary '\0'),(8,'IRMA',9180396,NULL,NULL,199.9,23.6,_binary '\0',NULL,NULL,'2023-08-24 10:42:17',NULL,_binary '\0'),(9,'JANA',9330185,NULL,NULL,69.34,12,_binary '\0',NULL,NULL,'2023-08-24 10:42:18',NULL,_binary '\0'),(10,'MEDI PERTH',9804552,NULL,NULL,199.99,32.24,_binary '\0',NULL,NULL,'2023-08-24 10:42:18',NULL,_binary '\0'),(11,'S NEPTUNE',9634892,NULL,NULL,169.99,27,_binary '\0',NULL,NULL,'2023-08-24 10:42:18',NULL,_binary '\0'),(12,'WESER STAHL',9186687,NULL,NULL,192,32.26,_binary '\0',NULL,NULL,'2023-08-24 10:42:18',NULL,_binary '\0'),(13,'BOTHNIABORG',9267728,'PBIO',NULL,153.05,21.8,_binary '\0',NULL,NULL,'2023-10-04 11:52:32',NULL,_binary '\0'); /*!40000 ALTER TABLE `ship` ENABLE KEYS */; UNLOCK TABLES; @@ -91,7 +89,7 @@ UNLOCK TABLES; LOCK TABLES `shipcall` WRITE; /*!40000 ALTER TABLE `shipcall` DISABLE KEYS */; -INSERT INTO `shipcall` VALUES (3,7,1,'2023-09-21 03:00:00','43B','2023-08-25 12:17:16',177,177,_binary '',_binary '',0,_binary '\0',_binary '',_binary '',_binary '',7.5,NULL,NULL,_binary '\0',3,_binary '',_binary '\0',_binary '\0','2023-06-27 11:03:28','2023-09-04 08:13:15'),(4,3,2,'2023-09-24 12:22:20','43','2023-09-01 02:00:00',184,184,_binary '',_binary '',2,_binary '\0',_binary '\0',_binary '\0',_binary '\0',6.35,NULL,NULL,_binary '\0',1,_binary '\0',_binary '',_binary '\0','2023-07-27 12:36:49','2023-09-04 08:13:15'),(5,1,1,'2023-07-23 07:18:19','43B',NULL,NULL,NULL,_binary '\0',_binary '',0,_binary '\0',_binary '',NULL,NULL,NULL,NULL,NULL,_binary '\0',2,NULL,NULL,NULL,'2023-08-11 15:11:50',NULL),(6,1,1,'2023-07-23 07:18:19','43B',NULL,NULL,NULL,_binary '\0',_binary '',0,_binary '\0',_binary '',NULL,NULL,NULL,NULL,NULL,_binary '\0',2,NULL,NULL,NULL,'2023-08-11 15:11:53',NULL),(7,1,1,'2023-07-23 07:18:19','43B',NULL,NULL,NULL,_binary '\0',_binary '',0,_binary '\0',_binary '',NULL,NULL,NULL,NULL,NULL,_binary '\0',2,NULL,NULL,NULL,'2023-08-13 12:12:34',NULL),(8,1,1,'2023-07-23 07:18:19','43B',NULL,NULL,NULL,_binary '\0',_binary '',0,_binary '\0',_binary '',NULL,NULL,NULL,NULL,NULL,_binary '\0',2,NULL,NULL,NULL,'2023-08-13 12:14:52',NULL),(9,1,1,'2023-07-23 07:18:19','43B',NULL,NULL,NULL,_binary '\0',_binary '',0,_binary '\0',_binary '',NULL,NULL,NULL,NULL,NULL,_binary '\0',2,NULL,NULL,NULL,'2023-08-13 12:17:09',NULL),(10,4,1,'2023-09-11 10:00:00','43B','2023-08-25 12:26:14',146,146,_binary '\0',_binary '',0,_binary '\0',_binary '\0',_binary '',_binary '\0',4.4,NULL,NULL,_binary '',3,_binary '\0',_binary '\0',_binary '\0','2023-08-14 07:55:48','2023-09-04 08:14:36'),(11,1,1,'2023-07-23 07:18:19','43B',NULL,NULL,NULL,_binary '\0',_binary '',0,_binary '\0',_binary '',NULL,NULL,NULL,NULL,NULL,_binary '\0',2,NULL,NULL,NULL,'2023-08-18 09:14:13',NULL),(12,1,1,'2023-07-23 07:18:19','43B',NULL,NULL,NULL,_binary '\0',_binary '',0,_binary '\0',_binary '',NULL,NULL,NULL,NULL,NULL,_binary '\0',2,NULL,NULL,NULL,'2023-08-18 09:14:20',NULL),(13,1,1,'2023-07-23 07:18:19','43B',NULL,NULL,NULL,_binary '\0',_binary '',0,_binary '\0',_binary '',NULL,NULL,NULL,NULL,NULL,_binary '\0',2,NULL,NULL,NULL,'2023-08-18 09:14:45',NULL),(14,1,1,'2023-07-23 07:18:19','43B',NULL,NULL,NULL,_binary '\0',_binary '',0,_binary '\0',_binary '',NULL,NULL,NULL,NULL,NULL,_binary '\0',2,NULL,NULL,NULL,'2023-08-18 09:17:42',NULL),(15,1,1,'2023-07-23 07:18:19','43B',NULL,NULL,NULL,_binary '\0',_binary '',0,_binary '\0',_binary '',NULL,NULL,NULL,NULL,NULL,_binary '\0',2,NULL,NULL,NULL,'2023-08-18 09:17:51',NULL),(16,1,3,'2023-09-21 16:19:14','Test','2023-08-26 16:18:54',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,4,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'0001-01-01 00:00:00','2023-09-04 13:05:33'),(17,7,1,'2023-09-01 03:00:01','','2023-08-25 12:20:05',177,177,_binary '',_binary '',NULL,_binary '',_binary '\0',_binary '\0',_binary '\0',7.5,'2023-08-31 23:00:01','2023-09-01 05:00:01',_binary '\0',2,_binary '\0',_binary '\0',_binary '\0','2023-08-24 12:20:04',NULL),(18,3,2,'2023-09-25 20:44:21','','2023-09-01 03:00:28',184,184,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2023-08-27 20:45:06','2023-09-04 08:14:35'); +INSERT INTO `shipcall` VALUES (3,7,1,'2023-11-21 03:00:00','43B','2023-08-25 12:17:16',178,177,_binary '',_binary '',0,_binary '\0',_binary '',_binary '',_binary '',7.5,NULL,NULL,_binary '\0',3,_binary '',_binary '\0',_binary '\0',NULL,NULL,'2023-06-27 11:03:28','2023-10-04 10:33:14'),(4,3,2,'2023-11-25 12:22:20','43','2023-10-02 02:00:00',2,181,_binary '',_binary '',2,_binary '\0',_binary '\0',_binary '\0',_binary '\0',6.35,NULL,NULL,_binary '\0',1,_binary '\0',_binary '',_binary '\0',NULL,NULL,'2023-07-27 12:36:49','2023-10-06 12:57:36'),(5,1,1,'2023-07-23 07:18:19','43B',NULL,NULL,NULL,_binary '\0',_binary '',0,_binary '\0',_binary '',NULL,NULL,NULL,NULL,NULL,_binary '\0',2,NULL,NULL,NULL,NULL,NULL,'2023-08-11 15:11:50',NULL),(6,1,1,'2023-07-23 07:18:19','43B',NULL,NULL,NULL,_binary '\0',_binary '',0,_binary '\0',_binary '',NULL,NULL,NULL,NULL,NULL,_binary '\0',2,NULL,NULL,NULL,NULL,NULL,'2023-08-11 15:11:53',NULL),(7,1,1,'2023-07-23 07:18:19','43B',NULL,NULL,NULL,_binary '\0',_binary '',0,_binary '\0',_binary '',NULL,NULL,NULL,NULL,NULL,_binary '\0',2,NULL,NULL,NULL,NULL,NULL,'2023-08-13 12:12:34',NULL),(8,1,1,'2023-07-23 07:18:19','43B',NULL,NULL,NULL,_binary '\0',_binary '',0,_binary '\0',_binary '',NULL,NULL,NULL,NULL,NULL,_binary '\0',2,NULL,NULL,NULL,NULL,NULL,'2023-08-13 12:14:52',NULL),(9,1,1,'2023-07-23 07:18:19','43B',NULL,NULL,NULL,_binary '\0',_binary '',0,_binary '\0',_binary '',NULL,NULL,NULL,NULL,NULL,_binary '\0',2,NULL,NULL,NULL,NULL,NULL,'2023-08-13 12:17:09',NULL),(10,4,1,'2023-09-11 10:00:00','43B','2023-08-25 12:26:14',146,146,_binary '\0',_binary '',0,_binary '\0',_binary '\0',_binary '',_binary '\0',4.4,NULL,NULL,_binary '',3,_binary '\0',_binary '\0',_binary '\0',NULL,NULL,'2023-08-14 07:55:48','2023-09-04 08:14:36'),(11,1,1,'2023-07-23 07:18:19','43B',NULL,NULL,NULL,_binary '\0',_binary '',0,_binary '\0',_binary '',NULL,NULL,NULL,NULL,NULL,_binary '\0',2,NULL,NULL,NULL,NULL,NULL,'2023-08-18 09:14:13',NULL),(12,1,1,'2023-07-23 07:18:19','43B',NULL,NULL,NULL,_binary '\0',_binary '',0,_binary '\0',_binary '',NULL,NULL,NULL,NULL,NULL,_binary '\0',2,NULL,NULL,NULL,NULL,NULL,'2023-08-18 09:14:20',NULL),(13,1,1,'2023-07-23 07:18:19','43B',NULL,NULL,NULL,_binary '\0',_binary '',0,_binary '\0',_binary '',NULL,NULL,NULL,NULL,NULL,_binary '\0',2,NULL,NULL,NULL,NULL,NULL,'2023-08-18 09:14:45',NULL),(14,1,1,'2023-07-23 07:18:19','43B',NULL,NULL,NULL,_binary '\0',_binary '',0,_binary '\0',_binary '',NULL,NULL,NULL,NULL,NULL,_binary '\0',2,NULL,NULL,NULL,NULL,NULL,'2023-08-18 09:17:42',NULL),(15,1,1,'2023-07-23 07:18:19','43B',NULL,NULL,NULL,_binary '\0',_binary '',0,_binary '\0',_binary '',NULL,NULL,NULL,NULL,NULL,_binary '\0',2,NULL,NULL,NULL,NULL,NULL,'2023-08-18 09:17:51',NULL),(16,1,3,'2023-10-21 16:19:14','Test','2023-08-26 16:18:54',145,143,_binary '',_binary '',NULL,_binary '',NULL,_binary '',NULL,4,NULL,NULL,_binary '',2,NULL,_binary '',NULL,NULL,NULL,'0001-01-01 00:00:00','2023-10-04 08:53:44'),(17,7,1,'2023-10-01 03:00:01','','2023-08-25 12:20:05',177,177,_binary '',_binary '',NULL,_binary '',_binary '\0',_binary '\0',_binary '\0',7.5,'2023-08-31 23:00:01','2023-09-01 05:00:01',_binary '\0',2,_binary '\0',_binary '\0',_binary '\0',NULL,NULL,'2023-08-24 12:20:04','2023-09-28 08:59:19'),(18,3,2,'2023-10-25 20:44:21','','2023-11-01 03:00:28',184,184,_binary '',_binary '',NULL,_binary '\0',NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,NULL,_binary '\0',NULL,NULL,NULL,'2023-08-27 20:45:06','2023-10-04 12:27:56'),(19,5,1,'2023-09-30 16:01:21','','2023-09-23 16:01:44',146,146,NULL,NULL,NULL,NULL,NULL,NULL,NULL,8.5,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2023-09-22 16:01:53',NULL),(20,9,1,'2023-10-20 07:52:45',NULL,'2023-10-07 07:52:56',140,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2023-10-06 07:52:56',NULL),(21,13,1,'2023-10-13 10:00:24',NULL,'2023-10-07 13:36:56',176,176,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2023-10-06 13:36:55',NULL),(22,13,2,'2023-10-06 13:37:42',NULL,'2023-10-20 11:11:28',176,176,_binary '',_binary '\0',NULL,_binary '',NULL,NULL,NULL,5,'2023-10-20 09:00:03','2023-10-20 13:00:10',_binary '',2,NULL,_binary '',_binary '\0',NULL,NULL,'2023-10-06 13:37:42','2023-10-06 13:54:43'); /*!40000 ALTER TABLE `shipcall` ENABLE KEYS */; UNLOCK TABLES; @@ -101,7 +99,7 @@ UNLOCK TABLES; LOCK TABLES `shipcall_participant_map` WRITE; /*!40000 ALTER TABLE `shipcall_participant_map` DISABLE KEYS */; -INSERT INTO `shipcall_participant_map` VALUES (1,3,2,'2023-08-11 15:01:23',NULL),(3,9,2,'2023-08-13 12:17:17',NULL),(4,9,4,'2023-08-13 12:17:18',NULL),(24,10,3,'2023-08-14 08:48:30',NULL),(26,10,9,'2023-08-14 09:03:29',NULL),(28,10,7,'2023-08-21 14:36:44',NULL),(29,10,16,'2023-08-21 14:36:44',NULL),(30,10,2,'2023-08-21 14:36:44',NULL),(32,10,11,'2023-08-21 14:36:44',NULL),(33,10,1,'2023-08-21 14:36:44',NULL),(34,3,3,'2023-08-21 14:45:52',NULL),(35,3,11,'2023-08-21 14:45:52',NULL),(43,16,3,'2023-08-21 16:19:13',NULL),(44,16,11,'2023-08-21 16:19:13',NULL),(45,16,1,'2023-08-21 16:19:13',NULL),(48,3,16,'2023-08-23 16:58:54',NULL),(49,3,9,'2023-08-23 16:58:54',NULL),(50,4,10,'2023-08-24 10:01:40',NULL),(51,4,16,'2023-08-24 10:01:40',NULL),(52,4,2,'2023-08-24 10:01:40',NULL),(53,4,10,'2023-08-24 10:01:40',NULL),(54,4,9,'2023-08-24 10:01:40',NULL),(55,4,3,'2023-08-24 10:01:40',NULL),(56,4,11,'2023-08-24 10:01:40',NULL),(57,4,1,'2023-08-24 10:01:40',NULL),(58,3,1,'2023-08-24 10:42:56',NULL),(59,3,4,'2023-08-24 12:17:16',NULL),(60,17,12,'2023-08-24 12:20:04',NULL),(61,17,16,'2023-08-24 12:20:04',NULL),(62,17,2,'2023-08-24 12:20:04',NULL),(63,17,4,'2023-08-24 12:20:04',NULL),(64,17,9,'2023-08-24 12:20:04',NULL),(65,17,3,'2023-08-24 12:20:04',NULL),(66,17,11,'2023-08-24 12:20:04',NULL),(67,17,1,'2023-08-24 12:20:04',NULL),(68,18,10,'2023-08-27 20:45:06',NULL),(69,18,16,'2023-08-27 20:45:06',NULL),(70,18,2,'2023-08-27 20:45:06',NULL),(71,18,10,'2023-08-27 20:45:06',NULL),(72,18,9,'2023-08-27 20:45:06',NULL),(73,18,3,'2023-08-27 20:45:06',NULL),(74,18,11,'2023-08-27 20:45:06',NULL),(75,18,1,'2023-08-27 20:45:06',NULL),(79,16,2,'2023-09-04 10:31:45',NULL),(81,3,7,'2023-09-04 11:45:26',NULL); +INSERT INTO `shipcall_participant_map` VALUES (3,9,2,'2023-08-13 12:17:17',NULL),(4,9,4,'2023-08-13 12:17:18',NULL),(24,10,3,'2023-08-14 08:48:30',NULL),(26,10,9,'2023-08-14 09:03:29',NULL),(28,10,7,'2023-08-21 14:36:44',NULL),(29,10,16,'2023-08-21 14:36:44',NULL),(30,10,2,'2023-08-21 14:36:44',NULL),(32,10,11,'2023-08-21 14:36:44',NULL),(33,10,1,'2023-08-21 14:36:44',NULL),(34,3,3,'2023-08-21 14:45:52',NULL),(35,3,11,'2023-08-21 14:45:52',NULL),(43,16,3,'2023-08-21 16:19:13',NULL),(44,16,11,'2023-08-21 16:19:13',NULL),(45,16,1,'2023-08-21 16:19:13',NULL),(55,4,3,'2023-08-24 10:01:40',NULL),(56,4,11,'2023-08-24 10:01:40',NULL),(57,4,1,'2023-08-24 10:01:40',NULL),(58,3,1,'2023-08-24 10:42:56',NULL),(65,17,3,'2023-08-24 12:20:04',NULL),(66,17,11,'2023-08-24 12:20:04',NULL),(67,17,1,'2023-08-24 12:20:04',NULL),(73,18,3,'2023-08-27 20:45:06',NULL),(74,18,11,'2023-08-27 20:45:06',NULL),(75,18,1,'2023-08-27 20:45:06',NULL),(79,16,2,'2023-09-04 10:31:45',NULL),(82,16,6,'2023-09-21 09:23:18',NULL),(83,19,12,'2023-09-22 16:01:53',NULL),(84,19,3,'2023-09-22 16:01:53',NULL),(85,19,11,'2023-09-22 16:01:53',NULL),(86,19,1,'2023-09-22 16:01:53',NULL),(96,4,10,'2023-09-25 11:41:42',NULL),(97,16,16,'2023-09-28 15:06:26',NULL),(98,16,115,'2023-09-28 15:06:26',NULL),(99,16,9,'2023-09-28 15:06:26',NULL),(100,17,6,'2023-09-29 12:56:53',NULL),(106,3,6,'2023-10-04 10:23:22',NULL),(107,18,136,'2023-10-04 12:27:28',NULL),(108,18,136,'2023-10-04 12:27:28',NULL),(110,18,136,'2023-10-04 12:27:28',NULL),(111,18,16,'2023-10-04 12:28:30',NULL),(112,18,2,'2023-10-04 12:28:30',NULL),(113,18,128,'2023-10-04 12:28:30',NULL),(114,18,9,'2023-10-04 12:28:30',NULL),(115,20,8,'2023-10-06 07:52:56',NULL),(116,20,3,'2023-10-06 07:52:56',NULL),(117,20,11,'2023-10-06 07:52:56',NULL),(118,20,1,'2023-10-06 07:52:56',NULL),(120,21,3,'2023-10-06 13:36:55',NULL),(121,21,11,'2023-10-06 13:36:55',NULL),(122,21,1,'2023-10-06 13:36:55',NULL),(123,22,136,'2023-10-06 13:37:42',NULL),(124,22,3,'2023-10-06 13:37:42',NULL),(125,22,11,'2023-10-06 13:37:42',NULL),(126,22,1,'2023-10-06 13:37:42',NULL),(127,21,10,'2023-10-06 13:45:22',NULL); /*!40000 ALTER TABLE `shipcall_participant_map` ENABLE KEYS */; UNLOCK TABLES; @@ -120,7 +118,7 @@ UNLOCK TABLES; LOCK TABLES `times` WRITE; /*!40000 ALTER TABLE `times` DISABLE KEYS */; -INSERT INTO `times` VALUES (1,'2023-05-18 07:18:19',NULL,'2023-05-18 09:18:19',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,1,'2023-06-27 11:05:01','2023-06-27 11:05:30',NULL,NULL,NULL),(2,'2023-08-23 09:26:22',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'test',16,1,'0001-01-01 00:00:00',NULL,NULL,NULL,NULL),(3,NULL,NULL,NULL,NULL,'2023-08-24 09:32:18',NULL,NULL,NULL,NULL,NULL,'',16,1,'2023-08-23 09:32:21',NULL,NULL,NULL,NULL),(4,'2023-08-19 07:05:29',NULL,'2023-09-07 09:00:00',NULL,NULL,NULL,NULL,NULL,NULL,NULL,'Lotsenbemerkung von M.B.',3,2,'2023-08-24 07:05:39','2023-09-04 10:30:58',NULL,NULL,NULL),(5,'2023-08-19 08:30:30',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'früher wird das nichts',3,16,'2023-08-24 07:10:43','2023-08-24 07:11:04',NULL,NULL,NULL),(6,NULL,NULL,'2023-09-01 02:00:00',NULL,NULL,NULL,NULL,NULL,NULL,NULL,'VB Blumenthal',4,9,'2023-08-24 12:29:48','2023-08-24 12:52:43',NULL,NULL,NULL),(7,'2023-09-01 03:30:00',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'VB Blexen, VB Blumenthal, \r\nFrüher geht es nicht',17,9,'2023-08-24 12:53:40','2023-08-24 12:55:20',NULL,NULL,NULL),(8,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'Keine Schlepporder',10,9,'2023-08-24 12:58:18',NULL,NULL,NULL,NULL),(9,NULL,NULL,'2023-09-01 02:00:01',NULL,NULL,NULL,NULL,NULL,NULL,NULL,'',4,16,'2023-08-24 13:00:16',NULL,NULL,NULL,NULL),(10,'2023-09-01 10:00:32',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'',10,16,'2023-08-24 13:00:39',NULL,NULL,NULL,NULL),(11,NULL,NULL,'2023-09-01 02:00:39',NULL,NULL,NULL,NULL,NULL,NULL,NULL,'',4,2,'2023-08-24 13:01:45',NULL,NULL,NULL,NULL),(12,'2023-09-01 03:00:52',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'',17,2,'2023-08-24 13:01:59',NULL,NULL,NULL,NULL),(13,'2023-09-01 10:00:10',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'',10,2,'2023-08-24 13:02:16','2023-09-04 09:11:45',NULL,NULL,NULL),(14,NULL,NULL,'2023-09-01 02:00:07',NULL,NULL,NULL,NULL,NULL,NULL,NULL,'',4,11,'2023-08-24 13:03:14',NULL,NULL,NULL,NULL),(15,'2023-09-01 03:00:20',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'',17,11,'2023-08-24 13:03:27',NULL,NULL,NULL,NULL),(16,'2023-09-01 10:00:34',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'',10,11,'2023-08-24 13:03:39',NULL,NULL,NULL,NULL),(17,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'',17,4,'2023-08-24 13:05:11','2023-08-24 13:05:57',NULL,NULL,NULL),(18,'2023-09-01 02:00:35',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'',4,10,'2023-08-24 13:06:45',NULL,NULL,NULL,NULL),(19,'2023-09-01 03:00:41',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'',17,10,'2023-08-24 13:07:48',NULL,NULL,NULL,NULL),(20,NULL,NULL,'2023-09-01 02:00:02',NULL,NULL,NULL,NULL,NULL,NULL,NULL,'',4,10,'2023-08-24 13:08:10',NULL,NULL,NULL,NULL),(21,'2023-09-01 10:00:17',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'',10,10,'2023-08-24 13:08:24',NULL,NULL,NULL,NULL),(22,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'Klärung abwarten => 0300/0330?',17,16,'2023-08-24 13:08:53','2023-08-24 13:09:33',NULL,NULL,NULL),(23,NULL,NULL,'2023-09-01 03:00:43',NULL,NULL,NULL,NULL,NULL,NULL,NULL,'',18,11,'2023-08-27 20:45:49',NULL,NULL,NULL,NULL),(24,NULL,NULL,'2023-09-01 03:00:21',NULL,NULL,NULL,NULL,NULL,NULL,NULL,'',18,10,'2023-08-27 20:46:25',NULL,NULL,NULL,NULL),(25,'2023-09-01 13:23:12',_binary '','2023-09-03 03:00:51',NULL,NULL,NULL,NULL,NULL,NULL,NULL,'es geht nicht früher!',18,2,'2023-08-27 20:46:54','2023-09-01 13:25:39',NULL,NULL,NULL),(26,NULL,NULL,'2023-09-01 03:00:34',NULL,NULL,NULL,NULL,NULL,NULL,NULL,'',18,9,'2023-08-27 20:47:40',NULL,NULL,NULL,NULL),(27,NULL,NULL,'2023-09-01 03:00:00',NULL,NULL,NULL,NULL,NULL,NULL,NULL,'',18,16,'2023-08-27 20:48:05',NULL,NULL,NULL,NULL); +INSERT INTO `times` VALUES (29,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2023-10-01 07:30:15','2023-10-01 13:00:00','Bemerkung Terminal',4,10,'2023-09-21 07:30:22','2023-10-04 10:58:14',150,'Liegeplatz Info 1',_binary '\0',2),(30,'2023-09-22 08:18:49',NULL,'2023-09-23 11:18:56',NULL,NULL,NULL,'2023-09-21 06:00:00',_binary '',NULL,NULL,'2 tugs needed',4,2,'2023-09-21 08:19:39','2023-09-21 08:20:22',NULL,NULL,NULL,4),(32,'2023-09-28 14:57:43',NULL,NULL,NULL,NULL,NULL,'2023-09-28 14:57:47',NULL,NULL,NULL,'Test',17,2,'2023-09-28 14:57:53',NULL,NULL,NULL,NULL,4),(35,'2023-10-21 16:19:14',NULL,'2023-08-26 16:18:54',NULL,NULL,NULL,NULL,NULL,NULL,NULL,'Bemerkungen XX',16,1,'2023-09-28 15:06:42','2023-10-04 09:28:16',146,'XXXCXC',NULL,8),(36,'2023-11-02 03:00:28',NULL,'2023-11-05 04:00:28',NULL,NULL,NULL,NULL,NULL,NULL,NULL,'Abgehende Bemerkungen. \r\nMan kann inzwischen return drücken um in die nächste Zeile zu kommen.',18,1,'2023-09-29 12:57:39','2023-10-04 10:33:34',185,'Test',NULL,8),(38,'2023-11-21 03:00:00',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'Incoming info',3,1,'2023-10-04 10:23:46',NULL,NULL,'Test Liegeplatz info Incoming',NULL,8),(39,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'Kurze Info: nix',18,2,'2023-10-04 10:45:05',NULL,NULL,NULL,NULL,4),(40,NULL,NULL,'2023-10-02 02:00:00',NULL,NULL,NULL,NULL,NULL,NULL,NULL,'Test Terminal als Agentur normale info',4,10,'2023-10-04 10:59:08',NULL,150,'Test Terminal als Agentur Liegeplatz info',NULL,8),(41,NULL,NULL,'2023-11-01 03:00:28',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,18,136,'2023-10-04 12:27:28',NULL,184,'',NULL,8),(42,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'',18,136,'2023-10-05 09:01:48',NULL,140,'Test',_binary '',2),(43,NULL,NULL,'2023-10-20 11:11:28',NULL,NULL,NULL,NULL,NULL,NULL,NULL,'Test',22,136,'2023-10-06 13:54:43',NULL,NULL,'100-300',NULL,8); /*!40000 ALTER TABLE `times` ENABLE KEYS */; UNLOCK TABLES; @@ -130,7 +128,7 @@ UNLOCK TABLES; LOCK TABLES `user` WRITE; /*!40000 ALTER TABLE `user` DISABLE KEYS */; -INSERT INTO `user` VALUES (1,1,'Daniel','Schick','dani',NULL,NULL,'$2b$12$qfjw4b3XvGuu0t6HR8OYGOzF5b8gmC6PyIIBNbIXMXEayJunEEKmi','0815','2023-04-17 07:15:41','2023-08-11 11:11:34'),(2,1,'Londo','Mollari','Londo','l.mollari@centauri.gov','+01 555 324 2313','$2b$12$P7MkcbOzmp7Wxsl8Ip5tg.KvMlvQEdFZN6AoM1Ze54.kvjYZxSizy',NULL,'2023-06-27 08:34:55','2023-09-04 13:36:34'),(3,2,'Maik','Baudeck','maikb',NULL,NULL,'$2b$12$4SxGRlinOrpEVvqDZcE.wOusMZYsepdc6vj1vDpNhbPtApxU8VGPi','','2023-08-10 07:09:35','2023-08-11 11:11:55'),(4,3,'Christin','Hollmann','christinh',NULL,NULL,'$2b$12$ul0QJmcuUhktDYDjcyEpx.6yY1ieLdaCxZ6a3SFSuTq94IqK4Y/re','','2023-08-10 07:12:05','2023-08-11 11:10:33'),(5,3,'Bastian','Güttner','bastiang',NULL,NULL,'$2b$12$0oCX3c2WyMykmxMoLqmpNubke713xhYlEEQgnxBV6Fj/TaUn.3/U6','','2023-08-10 07:12:26','2023-08-11 11:11:13'),(6,3,'Benjamin','Wiese','benjaminw',NULL,NULL,'$2b$12$RRj32KdLIf3D7z7cVWFqa.yZM5.ODOS0HqU3rdCuFrJS8HJ/rtqwy','','2023-08-10 07:13:01','2023-08-11 11:11:16'),(7,1,'Sladjan','Veselinovic','sladjanv',NULL,NULL,'$2b$12$4DctoCbZwxTvE39lXNRzneQ2kb/lXlJ5wEZ1CGbbw.rGM3nuAYjpa','','2023-08-10 07:13:39','2023-08-11 11:11:45'),(8,1,'Kersten','Gevers','kersteng',NULL,NULL,'$2b$12$zKX8iLPnXRmp5wD1Yp8P7e..U9R0A4ytbiMjd.l.IGkMzahcHPNWq','','2023-08-10 07:13:59','2023-08-11 11:11:49'),(9,4,'Dirk','Brunnert','dirkb',NULL,NULL,'$2b$12$HTeq/Fdfse6oElk7DLsQae5dtvWJloee.VtBH.THsj2kdcxxBkCDW','','2023-08-10 07:15:01','2023-08-11 11:12:01'),(10,5,'Thorsten','Fischer','thorstenf',NULL,NULL,'$2b$12$NHEpTNHuKU4ruPRIfd9yc.yv5faHGemFfRI3TISniqM7QNqHiyZpK','','2023-08-10 07:16:20','2023-08-11 11:12:07'),(11,6,'Lisa','Friedhoff','lisaf',NULL,NULL,'$2b$12$DJKJHGrQwfY9pwzgFfPds.DHGsygHyV3KDs38Hq4AUHPPs3jBPH3y','','2023-08-10 07:19:52','2023-08-11 11:12:12'),(12,6,'Dario','Fritschi','dariof',NULL,NULL,'$2b$12$MwCVTMQkN6zCAzCsE572Ye.M0nRDQNld4AgorLVyWq.DcQEmAy5lu','','2023-08-10 07:20:11','2023-08-11 11:12:15'),(13,7,'Hergen','Hanke','hergenh',NULL,NULL,'$2b$12$MKb6BDRrTbNd0qg5BdAS.upzlqxcWOgU/VEafJKSuzE9JLIWCimq6','','2023-08-10 07:22:09','2023-08-11 11:12:24'),(14,8,'Hardy','Paasch','hardyp',NULL,NULL,'$2b$12$l1lE/UqnYnOvci.N4j3zBOz6HC0z87ovnO0n6BIZYO7VN8gj.qGey','','2023-08-10 07:23:25','2023-08-11 11:12:28'),(15,8,'Marc','Pagel','marcp',NULL,NULL,'$2b$12$UCVJKzqX92Z8xZJ4kK0BRuFXMRdqcaXaGmBrqnYWARdKlPvZvLUZq','','2023-08-10 07:23:41','2023-08-11 11:12:30'),(16,9,'Andreas','Peukert','andreasp',NULL,NULL,'$2b$12$jNmciJAVR6p0IflvAthmk.j0SoOBvFHwDiEDKUHfwJq7baRsKg/LG','','2023-08-10 07:24:37','2023-08-11 11:12:45'),(17,8,'Christina','Rachiele','christinar',NULL,NULL,'$2b$12$BCsVgPRuIWPuuor07lprF.klQxvF901O3AXUhRrBJoEvYIjNQ.HKS','','2023-08-10 07:25:05','2023-08-11 11:12:33'),(18,9,'Sonia','Rekawek','soniar',NULL,NULL,'$2b$12$uHCkH6gu13yqllXBibLFIOWOpvctMC7NmojtXqDd6xsLq7bmvNOMu','','2023-08-10 07:25:27','2023-08-11 11:12:48'),(19,6,'Frank','Roelfs','frankr',NULL,NULL,'$2b$12$cEQAhUe9VJV6uTkfOY6/R.oAVfmFZQ4vS5G6BqoNEyaVHtFRDtB56','','2023-08-10 07:26:04','2023-08-11 11:12:19'),(20,10,'Vera','Schliedermann','veras',NULL,NULL,'$2b$12$FKcitW6W1HPwd.cdkZLGLeTFuzjsEIrbiKInysAKN.RibZ4gVLZHi','','2023-08-10 07:27:01','2023-08-11 11:12:54'),(21,8,'Michael','Strudthoff','michaels',NULL,NULL,'$2b$12$doTiywWpkso1UWB5eiAW1eoACP6rN4UDVt7qFFdRFvhhWUXikCmS2','','2023-08-10 07:27:27','2023-08-11 11:12:37'),(22,4,'Volker','Viohl','volkerv',NULL,NULL,'$2b$12$.YavQbWNE4eJDQA.ZNSKROYvMPWifBXyMX0IL0H2z50M720fpfTJW','','2023-08-10 07:27:50','2023-08-11 11:12:04'),(23,11,'Frauke','Zabel','fraukez',NULL,NULL,'$2b$12$rawQg6Cjl1yECGm9DOG8degdWdD.nZjEgGp8eXO98nh11QV1sEEEO','','2023-08-10 07:28:33','2023-08-11 11:12:58'),(24,8,'Jan','Zierow','janz',NULL,NULL,'$2b$12$CbnjUT42cf0mkIAqAURg3OksP9G3brmsE2GQTECTZ4.cVuhPn5D2G','','2023-08-10 07:28:55','2023-08-11 11:12:39'),(25,12,'Berit','Güstrau','beritg',NULL,NULL,'$2b$12$g8WJTEWwsrtMyqpVW/GFVuzyRjB2/n0YJJyvBx.3l51YiVEUjEQYy','','2023-08-21 06:52:35',NULL),(26,15,'Ilknur','Colmorn','ilknurc',NULL,NULL,'$2b$12$tpEb0JQ8Li4YkPH28FeYk.1Jt2vK.TFn9SyhBKJ08gn7S5d8WYRlO','','2023-08-21 06:56:42',NULL),(27,16,'Horst','Imgram','horsti',NULL,NULL,'$2b$12$05NFPSaP78puAa8pL39KrOKTafs/TzWwr4YfV4/Vrdu90assvNFZa','','2023-08-21 06:57:58',NULL); +INSERT INTO `user` VALUES (1,1,'Daniel','Schick','dani',NULL,NULL,'$2b$12$qfjw4b3XvGuu0t6HR8OYGOzF5b8gmC6PyIIBNbIXMXEayJunEEKmi','0815','2023-04-17 07:15:41','2023-08-11 11:11:34'),(2,1,'Londo','Mollari','Londo','l.mollari@centauri.gov','+01 555 324 2313','$2b$12$8r1oGQiWdiuQNoGbzm.z.OoCOc8.4YACN93k7ge7YDWKjQ8tPuTrm',NULL,'2023-06-27 08:34:55','2023-10-03 10:09:13'),(3,2,'Maik','Baudeck','maikb',NULL,NULL,'$2b$12$4SxGRlinOrpEVvqDZcE.wOusMZYsepdc6vj1vDpNhbPtApxU8VGPi','','2023-08-10 07:09:35','2023-08-11 11:11:55'),(4,3,'Christin','Hollmann','christinh',NULL,NULL,'$2b$12$evGJop3j19bNTkdg2GHrIeRedC7LG5SIHm8.hKhdUSrlXsp6sXBDG','','2023-08-10 07:12:05','2023-10-04 11:48:13'),(5,3,'Bastian','Güttner','bastiang',NULL,NULL,'$2b$12$0oCX3c2WyMykmxMoLqmpNubke713xhYlEEQgnxBV6Fj/TaUn.3/U6','','2023-08-10 07:12:26','2023-08-11 11:11:13'),(6,3,'Benjamin','Wiese','benjaminw',NULL,NULL,'$2b$12$RRj32KdLIf3D7z7cVWFqa.yZM5.ODOS0HqU3rdCuFrJS8HJ/rtqwy','','2023-08-10 07:13:01','2023-08-11 11:11:16'),(7,1,'Sladjan','Veselinovic','sladjanv',NULL,NULL,'$2b$12$4DctoCbZwxTvE39lXNRzneQ2kb/lXlJ5wEZ1CGbbw.rGM3nuAYjpa','','2023-08-10 07:13:39','2023-08-11 11:11:45'),(8,1,'Kersten','Gevers','kersteng',NULL,NULL,'$2b$12$zKX8iLPnXRmp5wD1Yp8P7e..U9R0A4ytbiMjd.l.IGkMzahcHPNWq','','2023-08-10 07:13:59','2023-08-11 11:11:49'),(9,4,'Dirk','Brunnert','dirkb',NULL,NULL,'$2b$12$HTeq/Fdfse6oElk7DLsQae5dtvWJloee.VtBH.THsj2kdcxxBkCDW','','2023-08-10 07:15:01','2023-08-11 11:12:01'),(10,5,'Thorsten','Fischer','thorstenf',NULL,NULL,'$2b$12$NHEpTNHuKU4ruPRIfd9yc.yv5faHGemFfRI3TISniqM7QNqHiyZpK','','2023-08-10 07:16:20','2023-08-11 11:12:07'),(11,6,'Lisa','Friedhoff','lisaf',NULL,NULL,'$2b$12$DJKJHGrQwfY9pwzgFfPds.DHGsygHyV3KDs38Hq4AUHPPs3jBPH3y','','2023-08-10 07:19:52','2023-08-11 11:12:12'),(12,6,'Dario','Fritschi','dariof',NULL,NULL,'$2b$12$MwCVTMQkN6zCAzCsE572Ye.M0nRDQNld4AgorLVyWq.DcQEmAy5lu','','2023-08-10 07:20:11','2023-08-11 11:12:15'),(13,7,'Hergen','Hanke','hergenh',NULL,NULL,'$2b$12$MKb6BDRrTbNd0qg5BdAS.upzlqxcWOgU/VEafJKSuzE9JLIWCimq6','','2023-08-10 07:22:09','2023-08-11 11:12:24'),(14,8,'Hardy','Paasch','hardyp',NULL,NULL,'$2b$12$l1lE/UqnYnOvci.N4j3zBOz6HC0z87ovnO0n6BIZYO7VN8gj.qGey','','2023-08-10 07:23:25','2023-08-11 11:12:28'),(15,8,'Marc','Pagel','marcp',NULL,NULL,'$2b$12$UCVJKzqX92Z8xZJ4kK0BRuFXMRdqcaXaGmBrqnYWARdKlPvZvLUZq','','2023-08-10 07:23:41','2023-08-11 11:12:30'),(16,9,'Andreas','Peukert','andreasp',NULL,NULL,'$2b$12$jNmciJAVR6p0IflvAthmk.j0SoOBvFHwDiEDKUHfwJq7baRsKg/LG','','2023-08-10 07:24:37','2023-08-11 11:12:45'),(17,8,'Christina','Rachiele','christinar',NULL,NULL,'$2b$12$BCsVgPRuIWPuuor07lprF.klQxvF901O3AXUhRrBJoEvYIjNQ.HKS','','2023-08-10 07:25:05','2023-08-11 11:12:33'),(18,9,'Sonia','Rekawek','soniar',NULL,NULL,'$2b$12$uHCkH6gu13yqllXBibLFIOWOpvctMC7NmojtXqDd6xsLq7bmvNOMu','','2023-08-10 07:25:27','2023-08-11 11:12:48'),(19,6,'Frank','Roelfs','frankr',NULL,NULL,'$2b$12$cEQAhUe9VJV6uTkfOY6/R.oAVfmFZQ4vS5G6BqoNEyaVHtFRDtB56','','2023-08-10 07:26:04','2023-08-11 11:12:19'),(20,10,'Vera','Schliedermann','veras',NULL,NULL,'$2b$12$FKcitW6W1HPwd.cdkZLGLeTFuzjsEIrbiKInysAKN.RibZ4gVLZHi','','2023-08-10 07:27:01','2023-08-11 11:12:54'),(21,8,'Michael','Strudthoff','michaels',NULL,NULL,'$2b$12$doTiywWpkso1UWB5eiAW1eoACP6rN4UDVt7qFFdRFvhhWUXikCmS2','','2023-08-10 07:27:27','2023-08-11 11:12:37'),(22,4,'Volker','Viohl','volkerv',NULL,NULL,'$2b$12$.YavQbWNE4eJDQA.ZNSKROYvMPWifBXyMX0IL0H2z50M720fpfTJW','','2023-08-10 07:27:50','2023-08-11 11:12:04'),(23,11,'Frauke','Zabel','fraukez',NULL,NULL,'$2b$12$rawQg6Cjl1yECGm9DOG8degdWdD.nZjEgGp8eXO98nh11QV1sEEEO','','2023-08-10 07:28:33','2023-08-11 11:12:58'),(24,8,'Jan','Zierow','janz',NULL,NULL,'$2b$12$CbnjUT42cf0mkIAqAURg3OksP9G3brmsE2GQTECTZ4.cVuhPn5D2G','','2023-08-10 07:28:55','2023-08-11 11:12:39'),(25,12,'Berit','Güstrau','beritg',NULL,NULL,'$2b$12$g8WJTEWwsrtMyqpVW/GFVuzyRjB2/n0YJJyvBx.3l51YiVEUjEQYy','','2023-08-21 06:52:35',NULL),(26,15,'Ilknur','Colmorn','ilknurc',NULL,NULL,'$2b$12$tpEb0JQ8Li4YkPH28FeYk.1Jt2vK.TFn9SyhBKJ08gn7S5d8WYRlO','','2023-08-21 06:56:42',NULL),(27,16,'Horst','Imgram','horsti',NULL,NULL,'$2b$12$05NFPSaP78puAa8pL39KrOKTafs/TzWwr4YfV4/Vrdu90assvNFZa','','2023-08-21 06:57:58',NULL),(28,136,'Christin','Hollmann','chollmann',NULL,NULL,'$2b$12$pb1bWJ7hxOplFoqT/nIhyuRD39dxOpQ9t0LwZUI8CNOkTkE.eXiSO','','2023-10-04 11:55:05',NULL),(29,1,'Max','Metz','maxm',NULL,NULL,'$2b$12$gg2Y51IDqnP3aAPKRzj7d.ZYSxB1pwuqTzwCnkGEfVIcDYRW0OBTS','','2023-10-06 13:02:56',NULL); /*!40000 ALTER TABLE `user` ENABLE KEYS */; UNLOCK TABLES; @@ -152,4 +150,4 @@ UNLOCK TABLES; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; --- Dump completed on 2023-09-05 10:38:13 +-- Dump completed on 2023-10-06 15:05:55 diff --git a/src/BreCalClient/AboutDialog.xaml b/src/BreCalClient/AboutDialog.xaml index b14d21f..da82547 100644 --- a/src/BreCalClient/AboutDialog.xaml +++ b/src/BreCalClient/AboutDialog.xaml @@ -7,7 +7,7 @@ xmlns:xctk="http://schemas.xceed.com/wpf/xaml/toolkit" xmlns:p = "clr-namespace:BreCalClient.Resources" mc:Ignorable="d" - Title="Help" Height="280" Width="500"> + Title="Help" Height="374" Width="500" Loaded="Window_Loaded"> @@ -20,6 +20,10 @@ + + + + @@ -39,14 +43,20 @@ - public partial class MainWindow : Window { + private readonly ILog _log = LogManager.GetLogger(typeof(MainWindow)); private const int SHIPCALL_UPDATE_INTERVAL_SECONDS = 30; #region Fields - + private static Int32 _uiUpdateRunning = 0; - private readonly Dictionary _allShipcallsDict = new(); - private readonly Dictionary _allShipCallsControlDict = new(); + private Timer? _timer; + private Credentials? _credentials; - private readonly List _visibleControlModels = new(); - - - private List _ships = new(); - private readonly ConcurrentDictionary _shipLookupDict = new(); - private List _berths = new(); - private readonly ConcurrentDictionary _berthLookupDict = new(); - private List _participants = new(); - private readonly Dictionary _participantLookupDict = new(); + private readonly ConcurrentDictionary _allShipcallsDict = new(); + private readonly ConcurrentDictionary _allShipCallsControlDict = new(); + private readonly List _visibleControlModels = new(); private readonly DefaultApi _api; - private readonly CancellationTokenSource _tokenSource = new(); + private CancellationTokenSource _tokenSource = new(); private LoginResult? _loginResult; private bool _refreshImmediately = false; private bool? _showCanceled = null; - private Extensions.SortOrder? _sortOrder; + private SortOrder? _sortOrder; + private int searchPastDays = 0; + // private bool _filterChanged = false; // private bool _sequenceChanged = false; @@ -71,8 +70,8 @@ namespace BreCalClient public MainWindow() { InitializeComponent(); - _api = new DefaultApi(); - _api.Configuration.ApiKeyPrefix["Authorization"] = "Bearer"; + _api = new DefaultApi(Properties.Settings.Default.API_URL); + _api.Configuration.ApiKeyPrefix["Authorization"] = "Bearer"; } #endregion @@ -109,12 +108,11 @@ namespace BreCalClient return; } - Credentials credentials = new(username: textUsername.Text.Trim(), - password: textPassword.Password.Trim()); + _credentials = new(username: textUsername.Text.Trim(), password: textPassword.Password.Trim()); try { - _loginResult = await _api.LoginPostAsync(credentials); + _loginResult = await _api.LoginPostAsync(_credentials); if (_loginResult != null) { if (_loginResult.Id > 0) @@ -122,7 +120,8 @@ namespace BreCalClient this.busyIndicator.IsBusy = false; this._api.Configuration.ApiKey["Authorization"] = _loginResult.Token; this.LoadStaticLists(); - this.labelUsername.Text = $"{_loginResult.FirstName} {_loginResult.LastName}"; + this.labelUsername.Text = $"{_loginResult.FirstName} {_loginResult.LastName}"; + _timer = new Timer(RefreshToken, null, 4000000, Timeout.Infinite); } } labelGeneralStatus.Text = $"Connection {ConnectionStatus.SUCCESSFUL}"; @@ -139,6 +138,29 @@ namespace BreCalClient } } + private void RefreshToken(object? state) + { + try + { + _loginResult = _api.LoginPost(_credentials); + if (_loginResult != null) + { + if (_loginResult.Id > 0) + { + this._api.Configuration.ApiKey["Authorization"] = _loginResult.Token; + } + } + else + { + _log.Error("Token refresh: Renewed login returned empty login result"); + } + } + catch (Exception ex) + { + _log.ErrorFormat("Error refreshing token: {0}", ex.Message); + } + } + private void buttonExit_Click(object sender, RoutedEventArgs e) { this.Close(); @@ -146,12 +168,7 @@ namespace BreCalClient private void buttonNew_Click(object sender, RoutedEventArgs e) { - EditShipcallControl esc = new() - { - Participants = this._participants, - Ships = this._ships, - Berths = this._berths - }; + EditShipcallControl esc = new(); if (esc.ShowDialog() ?? false) { @@ -160,6 +177,9 @@ namespace BreCalClient { this.UpdateUI(); + esc.ShipcallModel.Shipcall?.Participants.Clear(); + foreach (ParticipantAssignment pa in esc.ShipcallModel.AssignedParticipants.Values) + esc.ShipcallModel.Shipcall?.Participants.Add(pa); this._api.ShipcallsPost(esc.ShipcallModel.Shipcall); // save new ship call this.AddShipcall(esc.ShipcallModel); @@ -172,6 +192,7 @@ namespace BreCalClient private void buttonInfo_Click(object sender, RoutedEventArgs e) { AboutDialog ad = new(); + ad.LoginResult = this._loginResult; ad.ChangePasswordRequested += async (oldPw, newPw) => { if (_loginResult != null) @@ -182,6 +203,7 @@ namespace BreCalClient FirstName = _loginResult.FirstName, LastName = _loginResult.LastName, UserPhone = _loginResult.UserPhone, + UserEmail = _loginResult.UserEmail, OldPassword = oldPw, NewPassword = newPw }; @@ -234,28 +256,22 @@ namespace BreCalClient private async void LoadStaticLists() { - this._berths = await _api.BerthsGetAsync(); - foreach(var berth in this._berths) - _berthLookupDict[berth.Id] = berth; - this.searchFilterControl.SetBerths(this._berths); - this._ships = await _api.ShipsGetAsync(); - foreach(var ship in this._ships) - _shipLookupDict[ship.Id] = ship; - this._participants = await _api.ParticipantsGetAsync(); + BreCalLists.InitializeBerths(await _api.BerthsGetAsync()); + BreCalLists.InitializeShips(await _api.ShipsGetAsync()); + BreCalLists.InitializeParticipants(await _api.ParticipantsGetAsync()); - List agencies = new(); - foreach (Participant participant in this._participants) - { - this._participantLookupDict[participant.Id] = participant; + this.searchFilterControl.SetBerths(BreCalLists.Berths); + + foreach (Participant participant in BreCalLists.Participants) + { if (_loginResult?.ParticipantId == participant.Id) { App.Participant = participant; EnableControlsForParticipant(); - } - if(participant.IsTypeFlagSet(Extensions.ParticipantType.AGENCY)) - agencies.Add(participant); + } } - this.searchFilterControl.SetAgencies(agencies); + + this.searchFilterControl.SetAgencies(BreCalLists.Participants_Agent); if (!string.IsNullOrEmpty(Properties.Settings.Default.FilterCriteria)) { @@ -271,11 +287,21 @@ namespace BreCalClient { while (!_tokenSource.Token.IsCancellationRequested || _refreshImmediately) { - _refreshImmediately = false; + + if (_refreshImmediately) + { + _refreshImmediately = false; + _tokenSource = new CancellationTokenSource(); + } + List? shipcalls = null; try { - shipcalls = await _api.ShipcallsGetAsync(); + if(this.searchPastDays != 0) + shipcalls = await _api.ShipcallsGetAsync(this.searchPastDays); + else + shipcalls = await _api.ShipcallsGetAsync(); + this.Dispatcher.Invoke(new Action(() => { labelGeneralStatus.Text = $"Connection {ConnectionStatus.SUCCESSFUL}"; @@ -283,12 +309,17 @@ namespace BreCalClient })); } catch (Exception ex) - { + { this.Dispatcher.Invoke(new Action(() => { labelGeneralStatus.Text = $"Connection {ConnectionStatus.FAILED}"; labelStatusBar.Text = ex.Message; })); + + if (ex.Message.Contains("access", StringComparison.OrdinalIgnoreCase)) + { + this.RefreshToken(null); + } } if (shipcalls != null) @@ -313,7 +344,7 @@ namespace BreCalClient // update entry _allShipcallsDict[shipcall.Id].Shipcall = shipcall; _allShipcallsDict[shipcall.Id].Times = currentTimes; - this.UpdateShipcall(_allShipcallsDict[shipcall.Id]); + UpdateShipcall(_allShipcallsDict[shipcall.Id]); } } @@ -349,37 +380,44 @@ namespace BreCalClient _allShipcallsDict[scm.Shipcall.Id] = scm; Shipcall shipcall = scm.Shipcall; - if (this._shipLookupDict.ContainsKey(shipcall.ShipId)) - scm.Ship = this._shipLookupDict[shipcall.ShipId]; - if (this._berthLookupDict.ContainsKey(shipcall.ArrivalBerthId ?? 0)) - scm.Berth = this._berthLookupDict[shipcall.ArrivalBerthId ?? 0].Name; - scm.AssignParticipants(this._participants); + if (BreCalLists.ShipLookupDict.ContainsKey(shipcall.ShipId)) + scm.Ship = BreCalLists.ShipLookupDict[shipcall.ShipId]; + if (shipcall.Type == 1) + { + if (BreCalLists.BerthLookupDict.ContainsKey(shipcall.ArrivalBerthId ?? 0)) + scm.Berth = BreCalLists.BerthLookupDict[shipcall.ArrivalBerthId ?? 0].Name; + } + else + { + if (BreCalLists.BerthLookupDict.ContainsKey(shipcall.DepartureBerthId ?? 0)) + scm.Berth = BreCalLists.BerthLookupDict[shipcall.DepartureBerthId ?? 0].Name; + } + scm.AssignParticipants(); this.Dispatcher.Invoke(() => { ShipcallControl sc = new() { Height = 120, - ShipcallControlModel = scm, - ParticipantDict = _participantLookupDict, - Berths = _berths + ShipcallControlModel = scm }; sc.EditTimesRequested += Sc_EditTimesRequested; sc.EditRequested += Sc_EditRequested; + sc.EditAgencyRequested += Sc_EditAgencyRequested; sc.RefreshData(); this._allShipCallsControlDict[scm.Shipcall.Id] = sc; }); - } + } - private void UpdateShipcall(ShipcallControlModel scm) + private static void UpdateShipcall(ShipcallControlModel scm) { if(scm.Shipcall == null) return; Shipcall shipcall = scm.Shipcall; - if (this._shipLookupDict.ContainsKey(shipcall.ShipId)) - scm.Ship = this._shipLookupDict[shipcall.ShipId]; - if (this._berthLookupDict.ContainsKey(shipcall.ArrivalBerthId ?? 0)) - scm.Berth = this._berthLookupDict[shipcall.ArrivalBerthId ?? 0].Name; - scm.AssignParticipants(this._participants); + if (BreCalLists.ShipLookupDict.ContainsKey(shipcall.ShipId)) + scm.Ship = BreCalLists.ShipLookupDict[shipcall.ShipId]; + if (BreCalLists.BerthLookupDict.ContainsKey(shipcall.ArrivalBerthId ?? 0)) + scm.Berth = BreCalLists.BerthLookupDict[shipcall.ArrivalBerthId ?? 0].Name; + scm.AssignParticipants(); } private void RemoveShipcall(int shipcallId) @@ -392,14 +430,29 @@ namespace BreCalClient ShipcallControlModel removeModel = this._allShipcallsDict[shipcallId]; _visibleControlModels.Remove(removeModel); - this._allShipCallsControlDict.Remove(shipcallId); - this._allShipcallsDict.Remove(shipcallId); + this._allShipCallsControlDict.Remove(shipcallId, out _); + this._allShipcallsDict.Remove(shipcallId, out _); } private void FilterShipcalls() { SearchFilterModel sfm = this.searchFilterControl.SearchFilter; + if( sfm.EtaFrom.HasValue && sfm.EtaFrom < DateTime.Now.AddDays(-2)) + { + int daysInThePast = (int)Math.Ceiling((DateTime.Now - sfm.EtaFrom.Value).TotalDays); + if (this.searchPastDays != daysInThePast) + { + this.searchPastDays = daysInThePast; + _refreshImmediately = true; // set flag to avoid timer loop termination + _tokenSource.Cancel(); // force timer loop end + } + } + else + { + searchPastDays = 0; + } + this._visibleControlModels.Clear(); // first add everything this._visibleControlModels.AddRange(_allShipcallsDict.Values); @@ -413,42 +466,50 @@ namespace BreCalClient if(sfm.Agencies.Count > 0 ) { - this._visibleControlModels.RemoveAll(x => !sfm.Agencies.Contains((x.GetParticipantIdForType(Extensions.ParticipantType.AGENCY)) ?? -1)); + _ = this._visibleControlModels.RemoveAll((x) => + { + Participant? agency = x.GetParticipantForType(ParticipantType.AGENCY); + if(agency != null) + { + return !sfm.Agencies.Contains(agency.Id); + } + return true; + }); } if(sfm.Categories.Count > 0 ) { - this._visibleControlModels.RemoveAll(x => !sfm.Categories.Contains((x.Shipcall?.Type) ?? -1)); + _ = this._visibleControlModels.RemoveAll(x => !sfm.Categories.Contains((x.Shipcall?.Type) ?? -1)); } if(!string.IsNullOrEmpty(sfm.SearchString)) { - this._visibleControlModels.RemoveAll(x => !x.ContainsRemarkText(sfm.SearchString)); + _ = this._visibleControlModels.RemoveAll(x => !(x.ContainsRemarkText(sfm.SearchString) || (x.Ship?.Name.Contains(sfm.SearchString, StringComparison.InvariantCultureIgnoreCase) ?? false))); } if(sfm.ShipLengthTo != null) { - this._visibleControlModels.RemoveAll(x => x.Ship?.Length > sfm.ShipLengthTo); + _ = this._visibleControlModels.RemoveAll(x => x.Ship?.Length > sfm.ShipLengthTo); } if(sfm.ShipLengthFrom != null) { - this._visibleControlModels.RemoveAll(x => x.Ship?.Length < sfm.ShipLengthFrom); + _ = this._visibleControlModels.RemoveAll(x => x.Ship?.Length < sfm.ShipLengthFrom); } if(sfm.EtaFrom != null) { - this._visibleControlModels.RemoveAll(x => x.Shipcall?.Eta < sfm.EtaFrom); + _ = this._visibleControlModels.RemoveAll(x => x.Shipcall?.Eta < sfm.EtaFrom); } if(sfm.EtaTo != null) { - this._visibleControlModels.RemoveAll(x => x.Shipcall?.Eta > sfm.EtaTo); + _ = this._visibleControlModels.RemoveAll(x => x.Shipcall?.Eta > sfm.EtaTo); } if(!_showCanceled ?? true) // canceled calls are filtered by default { - this._visibleControlModels.RemoveAll(x => x.Shipcall?.Canceled ?? true); + _ = this._visibleControlModels.RemoveAll(x => x.Shipcall?.Canceled ?? false); } if (this._sortOrder != null) @@ -466,8 +527,8 @@ namespace BreCalClient { if (x.Shipcall == null) return 0; if (y.Shipcall == null) return 0; - DateTime xDate = (x.Shipcall.Type == (int) Extensions.TypeEnum.Incoming) ? x.Shipcall.Eta : x.Shipcall.Etd ?? x.Shipcall.Eta; - DateTime yDate = (y.Shipcall.Type == (int) Extensions.TypeEnum.Incoming) ? y.Shipcall.Eta : y.Shipcall.Etd ?? y.Shipcall.Eta; + DateTime xDate = (x.Shipcall.Type == (int) Extensions.TypeEnum.Incoming) ? x.Shipcall.Eta ?? DateTime.Now : x.Shipcall.Etd ?? DateTime.Now; + DateTime yDate = (y.Shipcall.Type == (int) Extensions.TypeEnum.Incoming) ? y.Shipcall.Eta ?? DateTime.Now : y.Shipcall.Etd ?? DateTime.Now; return DateTime.Compare(xDate, yDate); }); break; @@ -477,28 +538,45 @@ namespace BreCalClient } } - + #endregion + #region UpdateUI func + private void UpdateUI() { this.Dispatcher.Invoke(new Action(() => { - this.stackPanel.Children.Clear(); - foreach(ShipcallControlModel visibleModel in this._visibleControlModels) + if (Interlocked.CompareExchange(ref _uiUpdateRunning, 1, 0) == 1) return; + + try { - if (visibleModel.Shipcall == null) continue; // should not happen - if(this._allShipCallsControlDict.ContainsKey(visibleModel.Shipcall.Id)) + this.stackPanel.Children.Clear(); + foreach (ShipcallControlModel visibleModel in this._visibleControlModels) { - this._allShipCallsControlDict[visibleModel.Shipcall.Id].RefreshData(); - this.stackPanel.Children.Add(this._allShipCallsControlDict[visibleModel.Shipcall.Id]); + if (visibleModel.Shipcall == null) continue; // should not happen + if (this._allShipCallsControlDict.ContainsKey(visibleModel.Shipcall.Id)) + { + this._allShipCallsControlDict[visibleModel.Shipcall.Id].RefreshData(); + this.stackPanel.Children.Add(this._allShipCallsControlDict[visibleModel.Shipcall.Id]); + } } } + catch(Exception e) { + _log.ErrorFormat("Exception running ui update: {0}", e.ToString()); + } + finally + { + _uiUpdateRunning = 0; + } + })); } + #endregion + #region control event handler private async void Sc_EditRequested(ShipcallControl obj) @@ -507,16 +585,17 @@ namespace BreCalClient { EditShipcallControl esc = new() { - ShipcallModel = obj.ShipcallControlModel, - Ships = _ships, - Participants = _participants, - Berths = _berths + ShipcallModel = obj.ShipcallControlModel }; if(esc.ShowDialog() ?? false) { try { + obj.ShipcallControlModel.Shipcall?.Participants.Clear(); + obj.ShipcallControlModel.UpdateTimesAssignments(this._api); + foreach(ParticipantAssignment pa in obj.ShipcallControlModel.AssignedParticipants.Values) + obj.ShipcallControlModel.Shipcall?.Participants.Add(pa); await _api.ShipcallsPutAsync(obj.ShipcallControlModel.Shipcall); obj.RefreshData(); _refreshImmediately = true; @@ -532,10 +611,15 @@ namespace BreCalClient private async void Sc_EditTimesRequested(ShipcallControl obj, Times? times, Extensions.ParticipantType participantType) { + + if( obj.ShipcallControlModel == null) { return; } + if (!obj.ShipcallControlModel.AssignedParticipants.ContainsKey(participantType)) return; // no assigment means no dialog my friend + // show a dialog that lets the user create / update times for the given shipcall IEditTimesControl etc = (participantType == ParticipantType.TERMINAL) ? new EditTimesTerminalControl() : new EditTimesControl(); - if (etc is EditTimesTerminalControl ettc) - ettc.Berths = this._berths; + + if(obj.ShipcallControlModel.Shipcall != null) + etc.CallType = (TypeEnum) obj.ShipcallControlModel.Shipcall.Type; bool wasEdit = false; if (times != null) @@ -543,6 +627,13 @@ namespace BreCalClient etc.Times = times; wasEdit = true; } + else + { + if(obj.ShipcallControlModel.AssignedParticipants[participantType].ParticipantId == App.Participant.Id) + { + etc.Times.ParticipantId = App.Participant.Id; // this is my record, so the Participant Id is set that allows editing + } + } // actually we should only do this on create but we have existing data etc.Times.ParticipantType = (int) participantType; @@ -562,7 +653,8 @@ namespace BreCalClient { etc.Times.ShipcallId = obj.ShipcallControlModel.Shipcall.Id; } - await _api.TimesPostAsync(etc.Times); + Id apiResultId = await _api.TimesPostAsync(etc.Times); + etc.Times.Id = apiResultId.VarId; obj.ShipcallControlModel?.Times.Add(etc.Times); } _refreshImmediately = true; @@ -575,6 +667,84 @@ namespace BreCalClient } } + private async void Sc_EditAgencyRequested(ShipcallControl sc, Times? times) + { + IEditShipcallTimesControl? editControl = null; + switch(sc.ShipcallControlModel?.Shipcall?.Type) + { + case (int)TypeEnum.Incoming: + editControl = new EditTimesAgencyIncomingControl(); + break; + case (int)TypeEnum.Outgoing: + editControl = new EditTimesAgencyOutgoingControl(); + break; + case (int)TypeEnum.Shifting: + editControl = new EditTimesAgencyShiftingControl(); + break; + } + + if (editControl != null) + { + editControl.ShipcallModel = sc.ShipcallControlModel ?? new ShipcallControlModel(); + bool wasEdit = false; + if (times != null) + { + editControl.Times = times; + wasEdit = true; + } + else + { + if(editControl.ShipcallModel.AssignedParticipants.ContainsKey(ParticipantType.AGENCY)) + editControl.Times.ParticipantId = editControl.ShipcallModel.AssignedParticipants[ParticipantType.AGENCY].ParticipantId; + } + editControl.Times.ParticipantType = (int)ParticipantType.AGENCY; + if(editControl.ShowDialog() ?? false) + { + try + { + sc.ShipcallControlModel?.UpdateTimesAssignments(_api); // if the agent changed the assignment of the participant to another + + // always try to be the agent, even if we are BSMD + if (editControl.ShipcallModel.AssignedParticipants.ContainsKey(ParticipantType.AGENCY)) + { + editControl.Times.ParticipantId = editControl.ShipcallModel.AssignedParticipants[ParticipantType.AGENCY].ParticipantId; + } + else + { + editControl.Times.ParticipantId = App.Participant.Id; + } + + if (wasEdit) + { + await _api.TimesPutAsync(editControl.Times); + } + else + { + if ((sc.ShipcallControlModel != null) && (sc.ShipcallControlModel.Shipcall != null)) + { + editControl.Times.ShipcallId = sc.ShipcallControlModel.Shipcall.Id; + } + Id resultAPI_Id = await _api.TimesPostAsync(editControl.Times); + editControl.Times.Id = resultAPI_Id.VarId; + + sc.ShipcallControlModel?.Times.Add(editControl.Times); + } + editControl.ShipcallModel.Shipcall?.Participants.Clear(); + foreach (ParticipantAssignment pa in editControl.ShipcallModel.AssignedParticipants.Values) + editControl.ShipcallModel.Shipcall?.Participants.Add(pa); + await _api.ShipcallsPutAsync(editControl.ShipcallModel.Shipcall); + _refreshImmediately = true; + _tokenSource.Cancel(); + } + catch(Exception ex) + { + ShowErrorDialog(ex.Message, "Error saving agency information"); + } + } + } + + } + #endregion #region helper diff --git a/src/BreCalClient/Properties/PublishProfiles/ClickOnceProfile.pubxml b/src/BreCalClient/Properties/PublishProfiles/ClickOnceProfile.pubxml index a262fac..fdb647f 100644 --- a/src/BreCalClient/Properties/PublishProfiles/ClickOnceProfile.pubxml +++ b/src/BreCalClient/Properties/PublishProfiles/ClickOnceProfile.pubxml @@ -5,7 +5,7 @@ https://go.microsoft.com/fwlink/?LinkID=208121. 0 - 0.6.0.0 + 0.9.4.0 False Release True diff --git a/src/BreCalClient/Properties/PublishProfiles/ClickOnceTestProfile.pubxml b/src/BreCalClient/Properties/PublishProfiles/ClickOnceTestProfile.pubxml index c1f63d2..f423bad 100644 --- a/src/BreCalClient/Properties/PublishProfiles/ClickOnceTestProfile.pubxml +++ b/src/BreCalClient/Properties/PublishProfiles/ClickOnceTestProfile.pubxml @@ -5,7 +5,7 @@ https://go.microsoft.com/fwlink/?LinkID=208121. 0 - 0.6.2.0 + 0.9.4.0 False Debug True diff --git a/src/BreCalClient/Resources/Resources.Designer.cs b/src/BreCalClient/Resources/Resources.Designer.cs index ed9cb7c..d020a2a 100644 --- a/src/BreCalClient/Resources/Resources.Designer.cs +++ b/src/BreCalClient/Resources/Resources.Designer.cs @@ -110,6 +110,16 @@ namespace BreCalClient.Resources { } } + /// + /// Looks up a localized resource of type System.Byte[]. + /// + public static byte[] check { + get { + object obj = ResourceManager.GetObject("check", resourceCulture); + return ((byte[])(obj)); + } + } + /// /// Looks up a localized resource of type System.Byte[]. /// @@ -160,6 +170,16 @@ namespace BreCalClient.Resources { } } + /// + /// Looks up a localized resource of type System.Byte[]. + /// + public static byte[] delete2 { + get { + object obj = ResourceManager.GetObject("delete2", resourceCulture); + return ((byte[])(obj)); + } + } + /// /// Looks up a localized resource of type System.Byte[]. /// @@ -190,6 +210,16 @@ namespace BreCalClient.Resources { } } + /// + /// Looks up a localized resource of type System.Byte[]. + /// + public static byte[] sign_warning { + get { + object obj = ResourceManager.GetObject("sign_warning", resourceCulture); + return ((byte[])(obj)); + } + } + /// /// Looks up a localized string similar to Agencies. /// @@ -316,6 +346,15 @@ namespace BreCalClient.Resources { } } + /// + /// Looks up a localized string similar to Update contact info. + /// + public static string textChangeContactInfo { + get { + return ResourceManager.GetString("textChangeContactInfo", resourceCulture); + } + } + /// /// Looks up a localized string similar to Change password. /// @@ -406,6 +445,15 @@ namespace BreCalClient.Resources { } } + /// + /// Looks up a localized string similar to E-mail. + /// + public static string textEmail { + get { + return ResourceManager.GetString("textEmail", resourceCulture); + } + } + /// /// Looks up a localized string similar to Enter keyword. /// @@ -460,6 +508,15 @@ namespace BreCalClient.Resources { } } + /// + /// Looks up a localized string similar to Incoming. + /// + public static string textIncoming { + get { + return ResourceManager.GetString("textIncoming", resourceCulture); + } + } + /// /// Looks up a localized string similar to Interval. /// @@ -469,6 +526,15 @@ namespace BreCalClient.Resources { } } + /// + /// Looks up a localized string similar to Length. + /// + public static string textLength { + get { + return ResourceManager.GetString("textLength", resourceCulture); + } + } + /// /// Looks up a localized string similar to L/W. /// @@ -577,6 +643,15 @@ namespace BreCalClient.Resources { } } + /// + /// Looks up a localized string similar to Outgoing. + /// + public static string textOutgoing { + get { + return ResourceManager.GetString("textOutgoing", resourceCulture); + } + } + /// /// Looks up a localized string similar to Participants. /// @@ -604,6 +679,15 @@ namespace BreCalClient.Resources { } } + /// + /// Looks up a localized string similar to Phone. + /// + public static string textPhone { + get { + return ResourceManager.GetString("textPhone", resourceCulture); + } + } + /// /// Looks up a localized string similar to Pier side. /// @@ -703,6 +787,33 @@ namespace BreCalClient.Resources { } } + /// + /// Looks up a localized string similar to Shifting. + /// + public static string textShifting { + get { + return ResourceManager.GetString("textShifting", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Shifting from. + /// + public static string textShiftingFrom { + get { + return ResourceManager.GetString("textShiftingFrom", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Shifting to. + /// + public static string textShiftingTo { + get { + return ResourceManager.GetString("textShiftingTo", resourceCulture); + } + } + /// /// Looks up a localized string similar to Ship. /// @@ -820,6 +931,15 @@ namespace BreCalClient.Resources { } } + /// + /// Looks up a localized string similar to Width. + /// + public static string textWidth { + get { + return ResourceManager.GetString("textWidth", resourceCulture); + } + } + /// /// Looks up a localized string similar to Zone entry. /// diff --git a/src/BreCalClient/Resources/Resources.de.resx b/src/BreCalClient/Resources/Resources.de.resx index 2cecb22..5dbb002 100644 --- a/src/BreCalClient/Resources/Resources.de.resx +++ b/src/BreCalClient/Resources/Resources.de.resx @@ -236,7 +236,7 @@ Operation Start - Festmacher in Schleuse + auch in Schleuse Festmacher @@ -385,4 +385,34 @@ Info + + Einkommend + + + Ausgehend + + + Verholung + + + Länge + + + Verholung von + + + Verholung nach + + + Breite + + + Kontaktdaten bearbeiten + + + E-Mail + + + Telefon + \ No newline at end of file diff --git a/src/BreCalClient/Resources/Resources.resx b/src/BreCalClient/Resources/Resources.resx index 5477bcf..add0c1f 100644 --- a/src/BreCalClient/Resources/Resources.resx +++ b/src/BreCalClient/Resources/Resources.resx @@ -133,6 +133,9 @@ arrow_up_red.png;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + check.png;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + clipboard.png;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 @@ -148,6 +151,9 @@ delete.png;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + delete2.png;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + emergency_stop_button.png;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 @@ -157,6 +163,9 @@ ship2.png;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + sign_warning.png;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + Agencies @@ -199,6 +208,9 @@ Change + + Update contact info + Change password @@ -229,6 +241,9 @@ Edit times + + E-mail + Enter keyword @@ -247,9 +262,15 @@ from + + Incoming + Interval + + Length + L/W @@ -286,6 +307,9 @@ Operations start + + Outgoing + Participants @@ -295,6 +319,9 @@ Password changed. + + Phone + Pier side @@ -328,6 +355,15 @@ Search + + Shifting + + + Shifting from + + + Shifting to + Ship @@ -367,6 +403,9 @@ Voyage + + Width + Zone entry diff --git a/src/BreCalClient/Resources/check.png b/src/BreCalClient/Resources/check.png new file mode 100644 index 0000000..5d739b1 Binary files /dev/null and b/src/BreCalClient/Resources/check.png differ diff --git a/src/BreCalClient/Resources/delete2.png b/src/BreCalClient/Resources/delete2.png new file mode 100644 index 0000000..d31437a Binary files /dev/null and b/src/BreCalClient/Resources/delete2.png differ diff --git a/src/BreCalClient/Resources/sign_warning.png b/src/BreCalClient/Resources/sign_warning.png new file mode 100644 index 0000000..317ccc8 Binary files /dev/null and b/src/BreCalClient/Resources/sign_warning.png differ diff --git a/src/BreCalClient/ShipcallControl.xaml b/src/BreCalClient/ShipcallControl.xaml index 0f21e42..63a7bcb 100644 --- a/src/BreCalClient/ShipcallControl.xaml +++ b/src/BreCalClient/ShipcallControl.xaml @@ -2,18 +2,16 @@ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" - xmlns:d="http://schemas.microsoft.com/expression/blend/2008" - xmlns:local="clr-namespace:BreCalClient" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:p = "clr-namespace:BreCalClient.Resources" xmlns:sets="clr-namespace:BreCalClient.Properties" - xmlns:db="clr-namespace:BreCalClient;assembly=BreCalClient" - xmlns:db2="clr-namespace:BreCalClient.misc.Model;assembly=BreCalClient" + xmlns:db="clr-namespace:BreCalClient;assembly=BreCalClient" mc:Ignorable="d" d:DesignHeight="120" d:DesignWidth="800" Loaded="UserControl_Loaded"> - + @@ -35,20 +33,23 @@ - - + + @@ -72,20 +73,15 @@ - + - + - - - - - - - + + @@ -101,160 +97,123 @@ HorizontalAlignment="Stretch" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" Name="labelTug" PreviewMouseUp="labelTug_PreviewMouseUp"/> diff --git a/src/BreCalClient/ShipcallControl.xaml.cs b/src/BreCalClient/ShipcallControl.xaml.cs index ca2e298..1fcd904 100644 --- a/src/BreCalClient/ShipcallControl.xaml.cs +++ b/src/BreCalClient/ShipcallControl.xaml.cs @@ -3,15 +3,13 @@ // using BreCalClient.misc.Model; +using log4net; using System; -using System.Collections.Generic; -using System.Linq; using System.Windows; using System.Windows.Controls; using System.Windows.Media; using System.Windows.Media.Imaging; - namespace BreCalClient { /// @@ -19,6 +17,17 @@ namespace BreCalClient /// public partial class ShipcallControl : UserControl { + #region Fields + + Participant? _agency; + Participant? _pilot; + Participant? _mooring; + Participant? _terminal; + Participant? _tug; + Participant? _port_administration; + private static readonly ILog _log = LogManager.GetLogger(typeof(ShipcallControl)); + + #endregion #region Construction @@ -33,6 +42,8 @@ namespace BreCalClient public event Action? EditRequested; + public event Action? EditAgencyRequested; + internal event Action? EditTimesRequested; #endregion @@ -42,165 +53,266 @@ namespace BreCalClient /// /// this is our datasource /// - public ShipcallControlModel? ShipcallControlModel { get; set; } - - /// - /// these are all participants (currently loaded) - /// - public Dictionary? ParticipantDict { get; set; } - - /// - /// For berth name lookup - /// - public List? Berths {get; set;} + public ShipcallControlModel? ShipcallControlModel { get; set; } #endregion #region public methods public void RefreshData() - { - if (this.ShipcallControlModel == null) return; - string agentName = ""; - string? name; - name = this.ShipcallControlModel.GetParticipantNameForType(Extensions.ParticipantType.AGENCY); - if (name != null) agentName = name; - this.labelAgent.Content = name ?? "- / -"; - - name = this.ShipcallControlModel.GetParticipantNameForType(Extensions.ParticipantType.MOORING); - this.labelMooring.Content = name ?? "- / -"; - - name = this.ShipcallControlModel.GetParticipantNameForType(Extensions.ParticipantType.PILOT); - this.labelPilot.Content = name ?? "- / - "; - - name = this.ShipcallControlModel.GetParticipantNameForType(Extensions.ParticipantType.TUG); - this.labelTug.Content = name ?? "- / - "; - - name = this.ShipcallControlModel.GetParticipantNameForType(Extensions.ParticipantType.PORT_ADMINISTRATION); - this.labelPortAuthority.Content = name ?? "- / - "; - - name = this.ShipcallControlModel.GetParticipantNameForType(Extensions.ParticipantType.TERMINAL); - this.labelTerminal.Content = name ?? "- / - "; - - if(App.Participant.IsTypeFlagSet(Extensions.ParticipantType.TERMINAL) && (App.Participant.Id == this.ShipcallControlModel.GetParticipantIdForType(Extensions.ParticipantType.TERMINAL))) - { - this.labelTerminal.FontWeight = FontWeights.Bold; - this.labelTerminal.Foreground = Brushes.LightYellow; - } - if(App.Participant.IsTypeFlagSet(Extensions.ParticipantType.PILOT) && (App.Participant.Id == this.ShipcallControlModel.GetParticipantIdForType(Extensions.ParticipantType.PILOT))) - { - this.labelPilot.FontWeight = FontWeights.Bold; - this.labelPilot.Foreground = Brushes.LightYellow; - } - if(App.Participant.IsTypeFlagSet(Extensions.ParticipantType.AGENCY) && (App.Participant.Id == this.ShipcallControlModel.GetParticipantIdForType(Extensions.ParticipantType.AGENCY))) - { - this.labelAgent.FontWeight = FontWeights.Bold; - this.labelAgent.Foreground = Brushes.LightYellow; - } - if(App.Participant.IsTypeFlagSet(Extensions.ParticipantType.MOORING) && (App.Participant.Id == this.ShipcallControlModel.GetParticipantIdForType(Extensions.ParticipantType.MOORING))) - { - this.labelMooring.FontWeight = FontWeights.Bold; - this.labelMooring.Foreground = Brushes.LightYellow; - } - if(App.Participant.IsTypeFlagSet(Extensions.ParticipantType.PORT_ADMINISTRATION) && (App.Participant.Id == this.ShipcallControlModel.GetParticipantIdForType(Extensions.ParticipantType.PORT_ADMINISTRATION))) - { - this.labelPortAuthority.FontWeight = FontWeights.Bold; - this.labelPortAuthority.Foreground = Brushes.LightYellow; - } - if (App.Participant.IsTypeFlagSet(Extensions.ParticipantType.TUG) && (App.Participant.Id == this.ShipcallControlModel.GetParticipantIdForType(Extensions.ParticipantType.TUG))) - { - this.labelTug.FontWeight = FontWeights.Bold; - this.labelTug.Foreground = Brushes.LightYellow; - } - if (App.Participant.IsTypeFlagSet(Extensions.ParticipantType.BSMD) || - (App.Participant.IsTypeFlagSet(Extensions.ParticipantType.AGENCY) && (App.Participant.Id == this.ShipcallControlModel.GetParticipantIdForType(Extensions.ParticipantType.AGENCY)))) - { - this.labelShipName.FontWeight = FontWeights.Bold; - this.labelShipName.Foreground = Brushes.LightYellow; - } - - this.labelShipName.Content = this.ShipcallControlModel?.Ship?.Name; - switch(this.ShipcallControlModel?.Shipcall?.Type) - { - case 1: // incoming - this.imageShipcallType.Source = new BitmapImage(new Uri("pack://application:,,,/BreCalTestClient;component/Resources/arrow_down_red.png")); - break; - case 2: // outgoing - this.imageShipcallType.Source = new BitmapImage(new Uri("pack://application:,,,/BreCalTestClient;component/Resources/arrow_up_blue.png")); - break; - case 3: // shifting - this.imageShipcallType.Source = new BitmapImage(new Uri("pack://application:,,,/BreCalTestClient;component/Resources/arrow_right_green.png")); - break; - default: - break; - } - - this.textBlockBerth.Text = this.ShipcallControlModel?.Berth; - this.textBlockCallsign.Text = this.ShipcallControlModel?.Ship?.Callsign; - if ((this.ShipcallControlModel?.Shipcall?.Type == 1) || (this.ShipcallControlModel?.Shipcall?.Type == 3)) - { - this.textBlockETA.Text = this.ShipcallControlModel?.Shipcall?.Eta.ToString("dd.MM. HH:mm"); - } - if(this.ShipcallControlModel?.Shipcall?.Type == 2) - { - this.labelETA.Text = "ETD"; - this.textBlockETA.Text = this.ShipcallControlModel?.Shipcall?.Etd?.ToString("dd.MM. HH:mm"); - } - - this.textBlockIMO.Text = this.ShipcallControlModel?.Ship?.Imo.ToString(); - this.textBlockLengthWidth.Text = $"{this.ShipcallControlModel?.Ship?.Length} / {this.ShipcallControlModel?.Ship?.Width}"; - this.textBlockAgency.Text = agentName.TruncateDots(10); - - if (this.ParticipantDict != null) + { + try { if (this.ShipcallControlModel != null) { - foreach (Times times in this.ShipcallControlModel.Times) - { - if (times.ParticipantType == (int)Extensions.ParticipantType.AGENCY) - { - this.labelAgencyETA.Content = times.EtaBerth.HasValue ? times.EtaBerth.Value.ToString("dd.MM.yyyy HH:mm") : "- / -"; - this.labelAgencyETD.Content = times.EtdBerth.HasValue ? times.EtdBerth.Value.ToString("dd.MM.yyyy HH:mm") : "- / -"; - this.textBlockAgencyRemarks.Text = times.Remarks; - } - if (times.ParticipantType == (int) Extensions.ParticipantType.MOORING) - { - this.labelMooringETA.Content = times.EtaBerth.HasValue ? times.EtaBerth.Value.ToString("dd.MM.yyyy HH:mm") : "- / -"; - this.labelMooringETD.Content = times.EtdBerth.HasValue ? times.EtdBerth.Value.ToString("dd.MM.yyyy HH:mm") : "- / -"; - this.textBlockMooringRemarks.Text = times.Remarks; - } - if (times.ParticipantType == (int)Extensions.ParticipantType.PORT_ADMINISTRATION) - { - this.labelPortAuthorityETA.Content = times.EtaBerth.HasValue ? times.EtaBerth.Value.ToString("dd.MM.yyyy HH:mm") : "- / -"; - this.labelPortAuthorityETD.Content = times.EtdBerth.HasValue ? times.EtdBerth.Value.ToString("dd.MM.yyyy HH:mm") : "- / -"; - this.textBlockPortAuthorityRemarks.Text = times.Remarks; - } - if (times.ParticipantType == (int)Extensions.ParticipantType.PILOT) - { - this.labelPilotETA.Content = times.EtaBerth.HasValue ? times.EtaBerth.Value.ToString("dd.MM.yyyy HH:mm") : "- / -"; - this.labelPilotETD.Content = times.EtdBerth.HasValue ? times.EtdBerth.Value.ToString("dd.MM.yyyy HH:mm") : "- / -"; - this.textBlockPilotRemarks.Text = times.Remarks; - } - if (times.ParticipantType == (int)Extensions.ParticipantType.TUG) - { - this.labelTugETA.Content = times.EtaBerth.HasValue ? times.EtaBerth.Value.ToString("dd.MM.yyyy HH:mm") : "- / -"; - this.labelTugETD.Content = times.EtdBerth.HasValue ? times.EtdBerth.Value.ToString("dd.MM.yyyy HH:mm") : "- / -"; - this.textBlockTugRemarks.Text = times.Remarks; - } - if (times.ParticipantType == (int)Extensions.ParticipantType.TERMINAL) - { - if (this.Berths != null) - { - Berth? berth = this.Berths.Find((x) => x.Id == times.BerthId); - this.labelTerminalBerth.Content = (berth != null) ? berth.Name : ""; - } - this.labelOperationsStart.Content = times.OperationsStart.HasValue ? times.OperationsStart.Value.ToString("dd.MM.yyyy HH:mm") : "- / -"; - this.labelOperationsEnd.Content = times.OperationsEnd.HasValue ? times.OperationsEnd.Value.ToString("dd.MM.yyyy HH:mm") : "- / -"; - this.textBlockTerminalRemarks.Text = times.Remarks; - } + string agentName = ""; + string? name; + _agency = this.ShipcallControlModel.GetParticipantForType(Extensions.ParticipantType.AGENCY); + name = _agency?.Name; + if (name != null) agentName = name; + this.labelAgent.Content = name ?? "- / -"; + + _mooring = this.ShipcallControlModel.GetParticipantForType(Extensions.ParticipantType.MOORING); + name = _mooring?.Name; + this.labelMooring.Content = name ?? "- / -"; + + _pilot = this.ShipcallControlModel.GetParticipantForType(Extensions.ParticipantType.PILOT); + name = _pilot?.Name; + this.labelPilot.Content = name ?? "- / - "; + + _tug = this.ShipcallControlModel.GetParticipantForType(Extensions.ParticipantType.TUG); + name = _tug?.Name; + this.labelTug.Content = name ?? "- / - "; + + _port_administration = this.ShipcallControlModel.GetParticipantForType(Extensions.ParticipantType.PORT_ADMINISTRATION); + name = _port_administration?.Name; + this.labelPortAuthority.Content = name ?? "- / - "; + + _terminal = this.ShipcallControlModel.GetParticipantForType(Extensions.ParticipantType.TERMINAL); + name = _terminal?.Name; + this.labelTerminal.Content = name ?? "- / - "; + + if (App.Participant.IsTypeFlagSet(Extensions.ParticipantType.TERMINAL) && (App.Participant.Id == _terminal?.Id)) + { + this.labelTerminal.FontWeight = FontWeights.Bold; + this.labelTerminal.Foreground = Brushes.LightYellow; } + + if (App.Participant.IsTypeFlagSet(Extensions.ParticipantType.PILOT) && (App.Participant.Id == _pilot?.Id)) + { + this.labelPilot.FontWeight = FontWeights.Bold; + this.labelPilot.Foreground = Brushes.LightYellow; + } + + if ((App.Participant.IsTypeFlagSet(Extensions.ParticipantType.AGENCY) && (App.Participant.Id == _agency?.Id)) || + (App.Participant.IsTypeFlagSet(Extensions.ParticipantType.BSMD) && (_agency != null) && _agency.IsFlagSet(Extensions.ParticipantFlag.ALLOW_BSMD))) + { + this.labelAgent.FontWeight = FontWeights.Bold; + this.labelAgent.Foreground = Brushes.LightYellow; + } + + if (App.Participant.IsTypeFlagSet(Extensions.ParticipantType.MOORING) && (App.Participant.Id == _mooring?.Id)) + { + this.labelMooring.FontWeight = FontWeights.Bold; + this.labelMooring.Foreground = Brushes.LightYellow; + } + + if (App.Participant.IsTypeFlagSet(Extensions.ParticipantType.PORT_ADMINISTRATION) && (App.Participant.Id == _port_administration?.Id)) + { + this.labelPortAuthority.FontWeight = FontWeights.Bold; + this.labelPortAuthority.Foreground = Brushes.LightYellow; + } + + if (App.Participant.IsTypeFlagSet(Extensions.ParticipantType.TUG) && (App.Participant.Id == _tug?.Id)) + { + this.labelTug.FontWeight = FontWeights.Bold; + this.labelTug.Foreground = Brushes.LightYellow; + } + + if (App.Participant.IsTypeFlagSet(Extensions.ParticipantType.BSMD)) + { + this.labelShipName.FontWeight = FontWeights.Bold; + this.labelShipName.Foreground = Brushes.LightYellow; + } + + this.labelShipName.Content = this.ShipcallControlModel?.Ship?.Name; + switch (this.ShipcallControlModel?.Shipcall?.Type) + { + case 1: // incoming + this.imageShipcallType.Source = new BitmapImage(new Uri("pack://application:,,,/BreCalClient;component/Resources/arrow_down_red.png")); + break; + case 2: // outgoing + this.imageShipcallType.Source = new BitmapImage(new Uri("pack://application:,,,/BreCalClient;component/Resources/arrow_up_blue.png")); + break; + case 3: // shifting + this.imageShipcallType.Source = new BitmapImage(new Uri("pack://application:,,,/BreCalClient;component/Resources/arrow_right_green.png")); + break; + default: + break; + } + + switch(this.ShipcallControlModel?.LightMode) + { + case ShipcallControlModel.TrafficLightMode.GREEN: + this.imageEvaluation.Source = new BitmapImage(new Uri("pack://application:,,,/BreCalClient;component/Resources/check.png")); + break; + case ShipcallControlModel.TrafficLightMode.YELLOW: + this.imageEvaluation.Source = new BitmapImage(new Uri("pack://application:,,,/BreCalClient;component/Resources/sign_warning.png")); + break; + case ShipcallControlModel.TrafficLightMode.RED: + this.imageEvaluation.Source = new BitmapImage(new Uri("pack://application:,,,/BreCalClient;component/Resources/delete2.png")); + break; + default: + break; + } + + if (this.ShipcallControlModel?.Shipcall?.Evaluation != null) + { + ShipcallControlModel.TrafficLightMode resultColor = (ShipcallControlModel.TrafficLightMode) (this.ShipcallControlModel?.Shipcall?.Evaluation ?? 0); // der nullable Operator hier ist so doof, die VS validation blickts einfach nicht + switch (resultColor) + { + case ShipcallControlModel.TrafficLightMode.GREEN: + this.Background = Brushes.LightGreen; + break; + case ShipcallControlModel.TrafficLightMode.YELLOW: + this.Background= Brushes.LightYellow; + break; + case ShipcallControlModel.TrafficLightMode.RED: + this.Background = new SolidColorBrush(Color.FromArgb(200, 255, 100, 100)); + break; + default: + this.Background = Brushes.Transparent; + break; + } + } + + if (!string.IsNullOrEmpty(this.ShipcallControlModel?.Shipcall?.EvaluationMessage)) + this.imageEvaluation.ToolTip = this.ShipcallControlModel?.Shipcall?.EvaluationMessage; + + this.textBlockBerth.Text = this.ShipcallControlModel?.Berth; + this.textBlockCallsign.Text = this.ShipcallControlModel?.Ship?.Callsign; + if (this.ShipcallControlModel?.Shipcall?.Type == 1) + { + this.textBlockETA.Text = this.ShipcallControlModel?.Shipcall?.Eta?.ToString("dd.MM. HH:mm"); + } + if ((this.ShipcallControlModel?.Shipcall?.Type == 2) || (this.ShipcallControlModel?.Shipcall?.Type == 3)) + { + this.labelETA.Text = "ETD"; + this.textBlockETA.Text = this.ShipcallControlModel?.Shipcall?.Etd?.ToString("dd.MM. HH:mm"); + } + + this.textBlockIMO.Text = this.ShipcallControlModel?.Ship?.Imo.ToString(); + this.textBlockLengthWidth.Text = $"{this.ShipcallControlModel?.Ship?.Length} / {this.ShipcallControlModel?.Ship?.Width}"; + + // rename labels if this is not an incoming + // must be here because there may not be a times record for each participant (yet) + + if (this.ShipcallControlModel?.Shipcall?.Type != 1) + { + this.labelETAETDAgent.Content = "ETD"; + this.labelETAETDMooring.Content = "ETD"; + this.labelETAETDPilot.Content = "ETD"; + this.labelETAETDPortAuthority.Content = "ETD"; + this.labelETAETDTug.Content = "ETD"; + this.labelETAETDTerminal.Content = BreCalClient.Resources.Resources.textOperationsEnd; + } + + if (this.ShipcallControlModel != null) + { + foreach (Times times in this.ShipcallControlModel.Times) + { + string? berthText = null; + if ((BreCalLists.Berths != null) && times.BerthId.HasValue) + { + Berth? berth = BreCalLists.Berths.Find((x) => x.Id == times.BerthId); + berthText = berth?.Name; + } + if (berthText == null) + { + if (this.ShipcallControlModel?.Shipcall?.Type == (int)Extensions.TypeEnum.Incoming) + { + Berth? berth = BreCalLists.Berths?.Find((x) => x.Id == this.ShipcallControlModel.Shipcall?.ArrivalBerthId); + berthText = berth?.Name; + } + else + { + Berth? berth = BreCalLists.Berths?.Find((x) => x.Id == this.ShipcallControlModel?.Shipcall?.DepartureBerthId); + berthText = berth?.Name; + } + } + + if (times.ParticipantType == (int)Extensions.ParticipantType.AGENCY) + { + this.labelAgencyBerth.Content = berthText; + this.labelAgencyETAETDValue.Content = times.EtaBerth.HasValue ? times.EtaBerth.Value.ToString("dd.MM.yyyy HH:mm") : "- / -"; + this.textBlockAgencyRemarks.Text = times.Remarks; + this.textBlockAgencyBerthRemarks.Text = times.BerthInfo; + if (this.ShipcallControlModel?.Shipcall?.Type != 1) + { + this.labelAgencyETAETDValue.Content = times.EtdBerth.HasValue ? times.EtdBerth.Value.ToString("dd.MM.yyyy HH:mm") : "- / -"; + } + } + + if (times.ParticipantType == (int)Extensions.ParticipantType.MOORING) + { + this.labelMooringETAETDValue.Content = times.EtaBerth.HasValue ? times.EtaBerth.Value.ToString("dd.MM.yyyy HH:mm") : "- / -"; + this.textBlockMooringRemarks.Text = times.Remarks; + if (this.ShipcallControlModel?.Shipcall?.Type != 1) + { + this.labelMooringETAETDValue.Content = times.EtdBerth.HasValue ? times.EtdBerth.Value.ToString("dd.MM.yyyy HH:mm") : "- / -"; + } + } + + if (times.ParticipantType == (int)Extensions.ParticipantType.PORT_ADMINISTRATION) + { + this.labelPortAuthorityETAETDValue.Content = times.EtaBerth.HasValue ? times.EtaBerth.Value.ToString("dd.MM.yyyy HH:mm") : "- / -"; + this.textBlockPortAuthorityRemarks.Text = times.Remarks; + if (this.ShipcallControlModel?.Shipcall?.Type != 1) + { + this.labelPortAuthorityETAETDValue.Content = times.EtdBerth.HasValue ? times.EtdBerth.Value.ToString("dd.MM.yyyy HH:mm") : "- / -"; + } + } + + if (times.ParticipantType == (int)Extensions.ParticipantType.PILOT) + { + this.labelPilotETAETDValue.Content = times.EtaBerth.HasValue ? times.EtaBerth.Value.ToString("dd.MM.yyyy HH:mm") : "- / -"; + this.textBlockPilotRemarks.Text = times.Remarks; + if (this.ShipcallControlModel?.Shipcall?.Type != 1) + { + this.labelPilotETAETDValue.Content = times.EtdBerth.HasValue ? times.EtdBerth.Value.ToString("dd.MM.yyyy HH:mm") : "- / -"; + } + } + + if (times.ParticipantType == (int)Extensions.ParticipantType.TUG) + { + this.labelTugETAETDValue.Content = times.EtaBerth.HasValue ? times.EtaBerth.Value.ToString("dd.MM.yyyy HH:mm") : "- / -"; + this.textBlockTugRemarks.Text = times.Remarks; + if (this.ShipcallControlModel?.Shipcall?.Type != 1) + { + this.labelTugETAETDValue.Content = times.EtdBerth.HasValue ? times.EtdBerth.Value.ToString("dd.MM.yyyy HH:mm") : "- / -"; + } + } + + if (times.ParticipantType == (int)Extensions.ParticipantType.TERMINAL) + { + this.labelTerminalBerth.Content = berthText; + this.labelOperationsStart.Content = times.OperationsStart.HasValue ? times.OperationsStart.Value.ToString("dd.MM.yyyy HH:mm") : "- / -"; + this.textBlockTerminalRemarks.Text = times.Remarks; + if (this.ShipcallControlModel?.Shipcall?.Type != 1) + { + this.labelOperationsStart.Content = times.OperationsEnd.HasValue ? times.OperationsEnd.Value.ToString("dd.MM.yyyy HH:mm") : "- / -"; + } + this.textBlockTerminalBerthRemarks.Text = times.BerthInfo; + } + } + } + this.DataContext = this.ShipcallControlModel; } } + catch (Exception ex) + { + _log.ErrorFormat("Something went wrong during data refresh: {0}", ex.ToString()); + } } #endregion @@ -209,14 +321,13 @@ namespace BreCalClient private void UserControl_Loaded(object sender, RoutedEventArgs e) { - + // TBD } private void buttonEditShipcall_Click(object? sender, RoutedEventArgs? e) { - if(App.Participant.IsTypeFlagSet(Extensions.ParticipantType.BSMD) || - (App.Participant.IsTypeFlagSet(Extensions.ParticipantType.AGENCY) && (App.Participant.Id == this.ShipcallControlModel?.GetParticipantIdForType(Extensions.ParticipantType.AGENCY)))) - this.EditRequested?.Invoke(this); + if(App.Participant.IsTypeFlagSet(Extensions.ParticipantType.BSMD)) + this.EditRequested?.Invoke(this); } private void Image_PreviewMouseUp(object sender, System.Windows.Input.MouseButtonEventArgs e) @@ -225,56 +336,39 @@ namespace BreCalClient } private void labelAgent_PreviewMouseUp(object sender, System.Windows.Input.MouseButtonEventArgs e) - { - if (App.Participant.IsTypeFlagSet(Extensions.ParticipantType.AGENCY) && (App.Participant.Id == this.ShipcallControlModel?.GetParticipantIdForType(Extensions.ParticipantType.AGENCY))) - { - this.EditRequested?.Invoke(this); - } + { + Times? times = this.ShipcallControlModel?.GetTimesForParticipantType(Extensions.ParticipantType.AGENCY); + this.EditAgencyRequested?.Invoke(this, times); } private void labelMooring_PreviewMouseUp(object sender, System.Windows.Input.MouseButtonEventArgs e) { - if (App.Participant.IsTypeFlagSet(Extensions.ParticipantType.MOORING) && (App.Participant.Id == this.ShipcallControlModel?.GetParticipantIdForType(Extensions.ParticipantType.MOORING))) - { - Times? times = this.ShipcallControlModel?.GetTimesForParticipantType(Extensions.ParticipantType.MOORING); - this.EditTimesRequested?.Invoke(this, times, Extensions.ParticipantType.MOORING); - } + Times? times = this.ShipcallControlModel?.GetTimesForParticipantType(Extensions.ParticipantType.MOORING); + this.EditTimesRequested?.Invoke(this, times, Extensions.ParticipantType.MOORING); } private void labelPortAuthority_PreviewMouseUp(object sender, System.Windows.Input.MouseButtonEventArgs e) { - if (App.Participant.IsTypeFlagSet(Extensions.ParticipantType.PORT_ADMINISTRATION) && (App.Participant.Id == this.ShipcallControlModel?.GetParticipantIdForType(Extensions.ParticipantType.PORT_ADMINISTRATION))) - { - Times? times = this.ShipcallControlModel?.GetTimesForParticipantType(Extensions.ParticipantType.PORT_ADMINISTRATION); - this.EditTimesRequested?.Invoke(this, times, Extensions.ParticipantType.PORT_ADMINISTRATION); - } + Times? times = this.ShipcallControlModel?.GetTimesForParticipantType(Extensions.ParticipantType.PORT_ADMINISTRATION); + this.EditTimesRequested?.Invoke(this, times, Extensions.ParticipantType.PORT_ADMINISTRATION); } private void labelPilot_PreviewMouseUp(object sender, System.Windows.Input.MouseButtonEventArgs e) { - if (App.Participant.IsTypeFlagSet(Extensions.ParticipantType.PILOT) && (App.Participant.Id == this.ShipcallControlModel?.GetParticipantIdForType(Extensions.ParticipantType.PILOT))) - { - Times? times = this.ShipcallControlModel?.GetTimesForParticipantType(Extensions.ParticipantType.PILOT); - this.EditTimesRequested?.Invoke(this, times, Extensions.ParticipantType.PILOT); - } + Times? times = this.ShipcallControlModel?.GetTimesForParticipantType(Extensions.ParticipantType.PILOT); + this.EditTimesRequested?.Invoke(this, times, Extensions.ParticipantType.PILOT); } private void labelTug_PreviewMouseUp(object sender, System.Windows.Input.MouseButtonEventArgs e) { - if (App.Participant.IsTypeFlagSet(Extensions.ParticipantType.TUG) && (App.Participant.Id == this.ShipcallControlModel?.GetParticipantIdForType(Extensions.ParticipantType.TUG))) - { - Times? times = this.ShipcallControlModel?.GetTimesForParticipantType(Extensions.ParticipantType.TUG); - this.EditTimesRequested?.Invoke(this, times, Extensions.ParticipantType.TUG); - } + Times? times = this.ShipcallControlModel?.GetTimesForParticipantType(Extensions.ParticipantType.TUG); + this.EditTimesRequested?.Invoke(this, times, Extensions.ParticipantType.TUG); } private void labelTerminal_PreviewMouseUp(object sender, System.Windows.Input.MouseButtonEventArgs e) { - if (App.Participant.IsTypeFlagSet(Extensions.ParticipantType.TERMINAL) && (App.Participant.Id == this.ShipcallControlModel?.GetParticipantIdForType(Extensions.ParticipantType.TERMINAL))) - { - Times? times = this.ShipcallControlModel?.GetTimesForParticipantType(Extensions.ParticipantType.TERMINAL); - this.EditTimesRequested?.Invoke(this, times, Extensions.ParticipantType.TERMINAL); - } + Times? times = this.ShipcallControlModel?.GetTimesForParticipantType(Extensions.ParticipantType.TERMINAL); + this.EditTimesRequested?.Invoke(this, times, Extensions.ParticipantType.TERMINAL); } #endregion diff --git a/src/BreCalClient/ShipcallControlModel.cs b/src/BreCalClient/ShipcallControlModel.cs index 0d39601..a5e8e73 100644 --- a/src/BreCalClient/ShipcallControlModel.cs +++ b/src/BreCalClient/ShipcallControlModel.cs @@ -2,6 +2,7 @@ // Description: Container model for shipcall related info // +using BreCalClient.misc.Api; using BreCalClient.misc.Model; using System; using System.Collections.Generic; @@ -47,7 +48,7 @@ namespace BreCalClient public string? Berth { get; set; } - internal Dictionary AssignedParticipants { get; } = new(); + internal Dictionary AssignedParticipants { get; } = new(); public List Times { get; set; } = new(); @@ -55,46 +56,31 @@ namespace BreCalClient { get { - if (IsFlagSet(StatusFlags.RED)) + TrafficLightMode tlm = TrafficLightMode.OFF; + + if (this.Shipcall != null) { - if (IsFlagSet((StatusFlags)StatusFlags.YELLOW)) + if(this.Shipcall.Evaluation.HasValue) { - if (IsFlagSet(StatusFlags.GREEN)) - { - return TrafficLightMode.ALL; - } - return TrafficLightMode.RED_YELLOW; + tlm = (TrafficLightMode)this.Shipcall.Evaluation; } - return TrafficLightMode.RED; } - if (IsFlagSet(StatusFlags.YELLOW)) - return TrafficLightMode.YELLOW; - if (IsFlagSet(StatusFlags.GREEN)) - return TrafficLightMode.GREEN; - return TrafficLightMode.OFF; - } + return tlm; + } } #endregion #region public methods - public void AssignParticipants(List participants) + public void AssignParticipants() { this.AssignedParticipants.Clear(); if (Shipcall != null) { - foreach (int participantId in Shipcall.Participants) + foreach (ParticipantAssignment participantAssignment in Shipcall.Participants) { - Participant? participant = participants.Find((x) => x.Id == participantId); - if (participant != null) - { - foreach(Extensions.ParticipantType participantType in Enum.GetValues(typeof(Extensions.ParticipantType))) - { - if(participant.IsTypeFlagSet(participantType)) - AssignedParticipants[participantType] = participant; - } - } + AssignedParticipants[(Extensions.ParticipantType)participantAssignment.Type] = participantAssignment; } } } @@ -103,12 +89,24 @@ namespace BreCalClient { if (AssignedParticipants.ContainsKey(type)) { - int participantId = AssignedParticipants[type].Id; + int participantId = AssignedParticipants[type].ParticipantId; foreach (Times times in this.Times) { if ((times.ParticipantId == participantId) && (times.ParticipantType == (int) type)) return times; } + if(type == Extensions.ParticipantType.AGENCY) + { + // if I am BSMD and no agency entry was found this means we are editing the agency entry + if(App.Participant.Type == (int) Extensions.ParticipantType.BSMD) + { + foreach(Times times in this.Times) + { + if ((times.ParticipantId == App.Participant.Id) && (times.ParticipantType == (int) Extensions.ParticipantType.AGENCY)) + return times; + } + } + } } return null; } @@ -127,29 +125,36 @@ namespace BreCalClient return false; } + /// + /// After closing the edit shipcall or edit agency dialogs, the times assignments may have changed. + /// This function updates the assignments for existing times records accordingly and saves them. + /// + /// API reference to PUT eidted times + internal async void UpdateTimesAssignments(DefaultApi _api) + { + foreach (Extensions.ParticipantType participantType in this.AssignedParticipants.Keys) + { + Times? times = this.GetTimesForParticipantType(participantType); + if(times == null) continue; + if(times.ParticipantId != this.AssignedParticipants[participantType].ParticipantId) + { + times.ParticipantId = this.AssignedParticipants[participantType].ParticipantId; + await _api.TimesPutAsync(times); + } + } + } + #endregion #region helper - internal string? GetParticipantNameForType(Extensions.ParticipantType participantType) + internal Participant? GetParticipantForType(Extensions.ParticipantType participantType) { - foreach(Participant p in AssignedParticipants.Values) - { - if (p.IsTypeFlagSet(participantType)) - return p.Name; - } + if(AssignedParticipants.ContainsKey(participantType) && BreCalLists.ParticipantLookupDict.ContainsKey(AssignedParticipants[participantType].ParticipantId)) + return BreCalLists.ParticipantLookupDict[AssignedParticipants[participantType].ParticipantId]; + return null; - } - - internal int? GetParticipantIdForType(Extensions.ParticipantType participantType) - { - foreach(Participant p in AssignedParticipants.Values) - { - if(p.IsTypeFlagSet(participantType)) - return p.Id; - } - return null; - } + } private bool IsFlagSet(StatusFlags flag) { diff --git a/src/RoleEditor/App.config b/src/RoleEditor/App.config index 7c6ee29..51c1ce1 100644 --- a/src/RoleEditor/App.config +++ b/src/RoleEditor/App.config @@ -8,7 +8,7 @@ - Server=localhost;User ID=ds;Password=HalloWach_2323XXL!!;Database=bremen_calling;Port=33306 + Server=localhost;User ID=ds;Password=HalloWach_2323XXL!!;Database=bremen_calling_devel;Port=33306 diff --git a/src/RoleEditor/EditBerthDialog.xaml b/src/RoleEditor/EditBerthDialog.xaml index 78ef683..234b02b 100644 --- a/src/RoleEditor/EditBerthDialog.xaml +++ b/src/RoleEditor/EditBerthDialog.xaml @@ -5,7 +5,7 @@ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:RoleEditor" mc:Ignorable="d" - Title="Edit berth" Height="160" Width="450" Loaded="Window_Loaded"> + Title="Edit berth" Height="188" Width="450" Loaded="Window_Loaded"> @@ -15,25 +15,37 @@ +