From 23a903997a2f0b45d37db6919273878f46d5007a Mon Sep 17 00:00:00 2001 From: Daniel Schick Date: Tue, 19 Dec 2023 08:10:49 +0100 Subject: [PATCH] now the code is compiling. Yaml file documented via description tags. --- misc/BreCalApi.cs | 157 ++++++++++++++---- misc/BreCalApi.yaml | 28 +++- src/BreCalClient/EditShipcallControl.xaml.cs | 4 +- src/BreCalClient/EditTimesControl.xaml.cs | 16 +- .../EditTimesTerminalControl.xaml.cs | 20 +-- src/BreCalClient/Extensions.cs | 6 +- src/BreCalClient/MainWindow.xaml.cs | 143 +++++++++------- src/BreCalClient/SearchFilterControl.xaml.cs | 8 +- src/BreCalClient/SearchFilterModel.cs | 2 +- src/BreCalClient/ShipcallControl.xaml.cs | 28 ++-- src/BreCalClient/ShipcallControlModel.cs | 6 +- 11 files changed, 275 insertions(+), 143 deletions(-) diff --git a/misc/BreCalApi.cs b/misc/BreCalApi.cs index a99de65..7d96edc 100644 --- a/misc/BreCalApi.cs +++ b/misc/BreCalApi.cs @@ -1,7 +1,7 @@ //---------------------- // -// Generated REST API Client Code Generator v1.9.1.0 on 18.12.2023 18:02:05 +// Generated REST API Client Code Generator v1.9.1.0 on 19.12.2023 07:58:27 // Using the tool OpenAPI Generator v7.1.0 // //---------------------- @@ -5377,9 +5377,9 @@ namespace BreCalClient.misc.Model /// /// id. /// name. - /// ownerId. - /// authorityId. - /// varLock. + /// Optional reference to a participant (terminal). + /// Optional reference to a participant (port authority). + /// If true lock must be passed. /// created. /// modified. /// deleted (default to false). @@ -5405,18 +5405,21 @@ namespace BreCalClient.misc.Model [DataMember(Name = "name", EmitDefaultValue = true)] public string Name { get; set; } /// - /// Gets or Sets OwnerId + /// Optional reference to a participant (terminal) /// + /// Optional reference to a participant (terminal) [DataMember(Name = "owner_id", EmitDefaultValue = true)] public int? OwnerId { get; set; } /// - /// Gets or Sets AuthorityId + /// Optional reference to a participant (port authority) /// + /// Optional reference to a participant (port authority) [DataMember(Name = "authority_id", EmitDefaultValue = true)] public int? AuthorityId { get; set; } /// - /// Gets or Sets VarLock + /// If true lock must be passed /// + /// If true lock must be passed [DataMember(Name = "lock", EmitDefaultValue = true)] public bool? VarLock { get; set; } /// @@ -5829,6 +5832,46 @@ namespace BreCalClient.misc.Model } } +/* + * Bremen calling API + * + * Administer DEBRE ship calls, times and notifications + * + * The version of the OpenAPI document: 1.1.0 + * Contact: info@textbausteine.net + * Generated by: https://github.com/openapitools/openapi-generator.git + */ +namespace BreCalClient.misc.Model +{ + /// + /// Defines EvaluationType + /// + [JsonConverter(typeof(StringEnumConverter))] + public enum EvaluationType + { + /// + /// Enum Undefined for value: undefined + /// + [EnumMember(Value = "undefined")] + Undefined = 1, + /// + /// Enum Green for value: green + /// + [EnumMember(Value = "green")] + Green = 2, + /// + /// Enum Yellow for value: yellow + /// + [EnumMember(Value = "yellow")] + Yellow = 3, + /// + /// Enum Red for value: red + /// + [EnumMember(Value = "red")] + Red = 4 + } +} + /* * Bremen calling API * @@ -6812,12 +6855,12 @@ namespace BreCalClient.misc.Model /// name. /// imo. /// callsign. - /// participantId. + /// Optional reference to participant (tug role). /// length. /// width. /// isTug (default to false). /// bollardPull. - /// eni. + /// BSMD internal use. /// created. /// modified. /// deleted (default to false). @@ -6858,8 +6901,9 @@ namespace BreCalClient.misc.Model [DataMember(Name = "callsign", EmitDefaultValue = true)] public string Callsign { get; set; } /// - /// Gets or Sets ParticipantId + /// Optional reference to participant (tug role) /// + /// Optional reference to participant (tug role) [DataMember(Name = "participant_id", EmitDefaultValue = true)] public int? ParticipantId { get; set; } /// @@ -6883,8 +6927,9 @@ namespace BreCalClient.misc.Model [DataMember(Name = "bollard_pull", EmitDefaultValue = true)] public int? BollardPull { get; set; } /// - /// Gets or Sets Eni + /// BSMD internal use /// + /// BSMD internal use [DataMember(Name = "eni", EmitDefaultValue = true)] public int? Eni { get; set; } /// @@ -7118,6 +7163,11 @@ namespace BreCalClient.misc.Model [DataMember(Name = "type", IsRequired = true, EmitDefaultValue = true)] public ShipcallType Type { get; set; } /// + /// Gets or Sets Evaluation + /// + [DataMember(Name = "evaluation", EmitDefaultValue = true)] + public EvaluationType? Evaluation { get; set; } + /// /// Initializes a new instance of the class. /// [JsonConstructorAttribute] @@ -7153,7 +7203,7 @@ namespace BreCalClient.misc.Model /// participants. /// Readonly field set by the database. /// Readonly field set by the database. - public Shipcall(int id = default(int), int shipId = default(int), ShipcallType type = default(ShipcallType), 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?)) + public Shipcall(int id = default(int), int shipId = default(int), ShipcallType type = default(ShipcallType), 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?), EvaluationType? evaluation = default(EvaluationType?), string evaluationMessage = default(string), List participants = default(List), DateTime created = default(DateTime), DateTime? modified = default(DateTime?)) { this.Id = id; this.ShipId = shipId; @@ -7296,11 +7346,6 @@ 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)] @@ -7504,8 +7549,7 @@ namespace BreCalClient.misc.Model ) && ( this.Evaluation == input.Evaluation || - (this.Evaluation != null && - this.Evaluation.Equals(input.Evaluation)) + this.Evaluation.Equals(input.Evaluation) ) && ( this.EvaluationMessage == input.EvaluationMessage || @@ -7621,10 +7665,7 @@ namespace BreCalClient.misc.Model { hashCode = (hashCode * 59) + this.Canceled.GetHashCode(); } - if (this.Evaluation != null) - { - hashCode = (hashCode * 59) + this.Evaluation.GetHashCode(); - } + hashCode = (hashCode * 59) + this.Evaluation.GetHashCode(); if (this.EvaluationMessage != null) { hashCode = (hashCode * 59) + this.EvaluationMessage.GetHashCode(); @@ -7656,6 +7697,11 @@ namespace BreCalClient.misc.Model { yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for Voyage, length must be less than 16.", new [] { "Voyage" }); } + // EvaluationMessage (string) maxLength + if (this.EvaluationMessage != null && this.EvaluationMessage.Length > 512) + { + yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for EvaluationMessage, length must be less than 512.", new [] { "EvaluationMessage" }); + } yield break; } } @@ -7727,13 +7773,13 @@ namespace BreCalClient.misc.Model /// Initializes a new instance of the class. /// /// id. - /// etaBerth. + /// Arrival time at berth. /// currently unused. - /// etdBerth. + /// departure time from berth. /// currently unused. - /// lockTime. + /// arrival time at lock. /// currently unused. - /// zoneEntry. + /// currently unused. /// currently unused. /// Start time for terminal operations. /// End time for terminal operations. @@ -7741,8 +7787,8 @@ namespace BreCalClient.misc.Model /// Reference to a shipcall id (required). /// Reference to a participant id (required). /// Reference to a berth id. - /// berthInfo. - /// pierSide. + /// Additional info text for berth. + /// true if ship is rotated, false otherwise. /// participantType. /// Readonly field set by the database. /// Readonly field set by the database. @@ -7775,8 +7821,9 @@ namespace BreCalClient.misc.Model [DataMember(Name = "id", EmitDefaultValue = true)] public int Id { get; set; } /// - /// Gets or Sets EtaBerth + /// Arrival time at berth /// + /// Arrival time at berth [DataMember(Name = "eta_berth", EmitDefaultValue = true)] public DateTime? EtaBerth { get; set; } /// @@ -7786,8 +7833,9 @@ namespace BreCalClient.misc.Model [DataMember(Name = "eta_berth_fixed", EmitDefaultValue = true)] public bool? EtaBerthFixed { get; set; } /// - /// Gets or Sets EtdBerth + /// departure time from berth /// + /// departure time from berth [DataMember(Name = "etd_berth", EmitDefaultValue = true)] public DateTime? EtdBerth { get; set; } /// @@ -7797,8 +7845,9 @@ namespace BreCalClient.misc.Model [DataMember(Name = "etd_berth_fixed", EmitDefaultValue = true)] public bool? EtdBerthFixed { get; set; } /// - /// Gets or Sets LockTime + /// arrival time at lock /// + /// arrival time at lock [DataMember(Name = "lock_time", EmitDefaultValue = true)] public DateTime? LockTime { get; set; } /// @@ -7808,8 +7857,9 @@ namespace BreCalClient.misc.Model [DataMember(Name = "lock_time_fixed", EmitDefaultValue = true)] public bool? LockTimeFixed { get; set; } /// - /// Gets or Sets ZoneEntry + /// currently unused /// + /// currently unused [DataMember(Name = "zone_entry", EmitDefaultValue = true)] public DateTime? ZoneEntry { get; set; } /// @@ -7854,13 +7904,15 @@ namespace BreCalClient.misc.Model [DataMember(Name = "berth_id", EmitDefaultValue = true)] public int? BerthId { get; set; } /// - /// Gets or Sets BerthInfo + /// Additional info text for berth /// + /// Additional info text for berth [DataMember(Name = "berth_info", EmitDefaultValue = true)] public string BerthInfo { get; set; } /// - /// Gets or Sets PierSide + /// true if ship is rotated, false otherwise /// + /// true if ship is rotated, false otherwise [DataMember(Name = "pier_side", EmitDefaultValue = true)] public bool? PierSide { get; set; } /// @@ -8129,6 +8181,11 @@ namespace BreCalClient.misc.Model { yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for Remarks, length must be less than 512.", new [] { "Remarks" }); } + // BerthInfo (string) maxLength + if (this.BerthInfo != null && this.BerthInfo.Length > 512) + { + yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for BerthInfo, length must be less than 512.", new [] { "BerthInfo" }); + } yield break; } } @@ -8332,6 +8389,36 @@ namespace BreCalClient.misc.Model /// Validation Result IEnumerable IValidatableObject.Validate(ValidationContext validationContext) { + // OldPassword (string) maxLength + if (this.OldPassword != null && this.OldPassword.Length > 128) + { + yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for OldPassword, length must be less than 128.", new [] { "OldPassword" }); + } + // NewPassword (string) maxLength + if (this.NewPassword != null && this.NewPassword.Length > 128) + { + yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for NewPassword, length must be less than 128.", new [] { "NewPassword" }); + } + // FirstName (string) maxLength + if (this.FirstName != null && this.FirstName.Length > 45) + { + yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for FirstName, length must be less than 45.", new [] { "FirstName" }); + } + // LastName (string) maxLength + if (this.LastName != null && this.LastName.Length > 45) + { + yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for LastName, length must be less than 45.", new [] { "LastName" }); + } + // UserPhone (string) maxLength + if (this.UserPhone != null && this.UserPhone.Length > 128) + { + yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for UserPhone, length must be less than 128.", new [] { "UserPhone" }); + } + // UserEmail (string) maxLength + if (this.UserEmail != null && this.UserEmail.Length > 128) + { + yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for UserEmail, length must be less than 128.", new [] { "UserEmail" }); + } yield break; } } diff --git a/misc/BreCalApi.yaml b/misc/BreCalApi.yaml index 980963a..7111d62 100644 --- a/misc/BreCalApi.yaml +++ b/misc/BreCalApi.yaml @@ -468,9 +468,10 @@ components: type: boolean nullable: true evaluation: - type: integer + $ref: '#/components/schemas/EvaluationType' nullable: true evaluation_message: + maxLength: 512 type: string nullable: true participants: @@ -504,6 +505,7 @@ components: type: string format: date-time nullable: true + description: Arrival time at berth eta_berth_fixed: type: boolean nullable: true @@ -512,6 +514,7 @@ components: type: string format: date-time nullable: true + description: departure time from berth etd_berth_fixed: type: boolean nullable: true @@ -520,6 +523,7 @@ components: type: string format: date-time nullable: true + description: arrival time at lock lock_time_fixed: type: boolean nullable: true @@ -528,6 +532,7 @@ components: type: string format: date-time nullable: true + description: currently unused zone_entry_fixed: type: boolean nullable: true @@ -559,7 +564,10 @@ components: berth_info: type: string nullable: true + maxLength: 512 + description: Additional info text for berth pier_side: + description: true if ship is rotated, false otherwise type: boolean nullable: true participant_type: @@ -592,12 +600,15 @@ components: owner_id: type: integer nullable: true + description: Optional reference to a participant (terminal) authority_id: type: integer nullable: true + description: Optional reference to a participant (port authority) lock: type: boolean nullable: true + description: If true lock must be passed created: type: string format: date-time @@ -631,6 +642,7 @@ components: participant_id: type: integer nullable: true + description: Optional reference to participant (tug role) length: type: number format: float @@ -648,6 +660,7 @@ components: eni: type: integer nullable: true + description: BSMD internal use created: type: string format: date-time @@ -760,19 +773,25 @@ components: old_password: type: string nullable: true + maxLength: 128 new_password: type: string nullable: true + maxLength: 128 first_name: type: string nullable: true + maxLength: 45 last_name: type: string nullable: true + maxLength: 45 user_phone: + maxLength: 128 type: string nullable: true user_email: + maxLength: 128 type: string nullable: true Id: @@ -804,6 +823,13 @@ components: - undefined - email - push + EvaluationType: + type: string + enum: + - undefined + - green + - yellow + - red securitySchemes: ApiKey: type: apiKey diff --git a/src/BreCalClient/EditShipcallControl.xaml.cs b/src/BreCalClient/EditShipcallControl.xaml.cs index 5c1043e..8d578e6 100644 --- a/src/BreCalClient/EditShipcallControl.xaml.cs +++ b/src/BreCalClient/EditShipcallControl.xaml.cs @@ -254,7 +254,7 @@ namespace BreCalClient if (this.ShipcallModel == null) return; if (this.ShipcallModel.Shipcall != null) { - this.comboBoxCategories.SelectedItem = (TypeEnum)this.ShipcallModel.Shipcall.Type; + this.comboBoxCategories.SelectedItem = this.ShipcallModel.Shipcall.Type; if (this.ShipcallModel.Shipcall.Eta != DateTime.MinValue) this.datePickerETA.Value = this.ShipcallModel.Shipcall.Eta; // this.textBoxVoyage.Text = this.ShipcallModel.Shipcall.Voyage; @@ -262,7 +262,7 @@ namespace BreCalClient this.comboBoxShip.SelectedValue = this.ShipcallModel.Shipcall.ShipId; this.checkBoxCancelled.IsChecked = this.ShipcallModel.Shipcall.Canceled ?? false; - if (this.ShipcallModel.Shipcall.Type != 3) // incoming, outgoing + if (this.ShipcallModel.Shipcall.Type != ShipcallType.Shifting) // incoming, outgoing { this.comboBoxArrivalBerth.SelectedValue = this.ShipcallModel.Shipcall.ArrivalBerthId; this.comboBoxDepartureBerth.SelectedValue = this.ShipcallModel.Shipcall.DepartureBerthId; diff --git a/src/BreCalClient/EditTimesControl.xaml.cs b/src/BreCalClient/EditTimesControl.xaml.cs index 3a8163c..4beaade 100644 --- a/src/BreCalClient/EditTimesControl.xaml.cs +++ b/src/BreCalClient/EditTimesControl.xaml.cs @@ -89,7 +89,7 @@ namespace BreCalClient private void EnableControls() { - Extensions.ParticipantType pType = (Extensions.ParticipantType) (this.Times.ParticipantType ?? 0); + Extensions.ParticipantType pType = (Extensions.ParticipantType) this.Times.ParticipantType; if (this.Times.ParticipantId != App.Participant.Id) return; // if this is not "my" entry, there is no editing! switch (pType) @@ -97,24 +97,24 @@ namespace BreCalClient case Extensions.ParticipantType.MOORING: case Extensions.ParticipantType.PORT_ADMINISTRATION: case Extensions.ParticipantType.TUG: - this.datePickerETABerth.IsEnabled = (CallType == Extensions.TypeEnum.Incoming); + this.datePickerETABerth.IsEnabled = (CallType == ShipcallType.Arrival); //this.checkBoxEtaBerthFixed.IsEnabled = (CallType == Extensions.TypeEnum.Incoming || CallType == Extensions.TypeEnum.Shifting); - this.datePickerETDBerth.IsEnabled = (CallType == Extensions.TypeEnum.Outgoing || CallType == Extensions.TypeEnum.Shifting); + this.datePickerETDBerth.IsEnabled = (CallType == ShipcallType.Departure || CallType == ShipcallType.Shifting); //this.checkBoxEtDBerthFixed.IsEnabled = (CallType == Extensions.TypeEnum.Outgoing || CallType == Extensions.TypeEnum.Shifting); - this.datePickerLockTime.IsEnabled = (CallType == Extensions.TypeEnum.Incoming || CallType == Extensions.TypeEnum.Shifting); + this.datePickerLockTime.IsEnabled = (CallType == ShipcallType.Arrival || CallType == ShipcallType.Shifting); //this.checkBoxLockTimeFixed.IsEnabled = (CallType == Extensions.TypeEnum.Incoming || CallType == Extensions.TypeEnum.Shifting); this.datePickerZoneEntry.IsEnabled = false; //this.checkBoxZoneEntryFixed.IsEnabled = false; this.textBoxRemarks.IsEnabled = true; break; case Extensions.ParticipantType.PILOT: - this.datePickerETABerth.IsEnabled = (CallType == Extensions.TypeEnum.Incoming); + this.datePickerETABerth.IsEnabled = (CallType == ShipcallType.Arrival); //this.checkBoxEtaBerthFixed.IsEnabled = (CallType == Extensions.TypeEnum.Incoming || CallType == Extensions.TypeEnum.Shifting); - this.datePickerETDBerth.IsEnabled = (CallType == Extensions.TypeEnum.Outgoing || CallType == Extensions.TypeEnum.Shifting); + this.datePickerETDBerth.IsEnabled = (CallType == ShipcallType.Departure || CallType == ShipcallType.Shifting); //this.checkBoxEtDBerthFixed.IsEnabled = (CallType == Extensions.TypeEnum.Outgoing || CallType == Extensions.TypeEnum.Shifting); - this.datePickerLockTime.IsEnabled = (CallType == Extensions.TypeEnum.Incoming || CallType == Extensions.TypeEnum.Shifting); + this.datePickerLockTime.IsEnabled = (CallType == ShipcallType.Arrival || CallType == ShipcallType.Shifting); //this.checkBoxLockTimeFixed.IsEnabled = (CallType == Extensions.TypeEnum.Incoming || CallType == Extensions.TypeEnum.Shifting); - this.datePickerZoneEntry.IsEnabled = (CallType == Extensions.TypeEnum.Incoming); + this.datePickerZoneEntry.IsEnabled = (CallType == ShipcallType.Arrival); //this.checkBoxZoneEntryFixed.IsEnabled = (CallType == Extensions.TypeEnum.Incoming); this.textBoxRemarks.IsEnabled = true; break; diff --git a/src/BreCalClient/EditTimesTerminalControl.xaml.cs b/src/BreCalClient/EditTimesTerminalControl.xaml.cs index 5092a39..0bd6598 100644 --- a/src/BreCalClient/EditTimesTerminalControl.xaml.cs +++ b/src/BreCalClient/EditTimesTerminalControl.xaml.cs @@ -72,12 +72,12 @@ namespace BreCalClient private void CopyToModel() { - switch(this.comboBoxPierside.SelectedIndex) + this.Times.PierSide = this.comboBoxPierside.SelectedIndex switch { - case 0: this.Times.PierSide = true; break; - case 1: this.Times.PierSide= false; break; - default: this.Times.PierSide = null; break; - } + 0 => true, + 1 => false, + _ => null, + }; this.Times.OperationsStart = this.datePickerOperationStart.Value; this.Times.OperationsEnd = this.datePickerOperationEnd.Value; this.Times.BerthId = (this.comboBoxBerth.SelectedItem != null) ? ((Berth)this.comboBoxBerth.SelectedItem).Id : null; @@ -114,11 +114,11 @@ namespace BreCalClient { if (this.Times.ParticipantId != App.Participant.Id) return; - this.datePickerOperationStart.IsEnabled = (CallType == Extensions.TypeEnum.Incoming); - this.datePickerOperationEnd.IsEnabled = (CallType == Extensions.TypeEnum.Outgoing) || (CallType == Extensions.TypeEnum.Shifting); - this.comboBoxBerth.IsEnabled = (CallType == Extensions.TypeEnum.Incoming); - this.comboBoxPierside.IsEnabled = (CallType == Extensions.TypeEnum.Incoming); - this.textBoxBerthRemarks.IsEnabled = (CallType == Extensions.TypeEnum.Incoming); + this.datePickerOperationStart.IsEnabled = CallType == ShipcallType.Arrival; + this.datePickerOperationEnd.IsEnabled = (CallType == ShipcallType.Departure) || (CallType == ShipcallType.Shifting); + this.comboBoxBerth.IsEnabled = CallType == ShipcallType.Arrival; + this.comboBoxPierside.IsEnabled = CallType == ShipcallType.Arrival; + this.textBoxBerthRemarks.IsEnabled = CallType == ShipcallType.Arrival; this.textBoxRemarks.IsEnabled = true; this.buttonOK.IsEnabled = true; } diff --git a/src/BreCalClient/Extensions.cs b/src/BreCalClient/Extensions.cs index e92bd4b..1030478 100644 --- a/src/BreCalClient/Extensions.cs +++ b/src/BreCalClient/Extensions.cs @@ -71,15 +71,15 @@ namespace BreCalClient public static string Truncate(this string value, int maxLength) { if (string.IsNullOrEmpty(value)) return value; - return value.Length <= maxLength ? value : value.Substring(0, maxLength); + return value.Length <= maxLength ? value : value[..maxLength]; } public static string TruncateDots(this string value, int maxLength) { if(string.IsNullOrEmpty(value)) return value; if (value.Length <= maxLength) return value; - if (value.Length > (maxLength + 1)) return $"{value.Substring(0, maxLength)}.."; - return value.Substring(0, maxLength); + if (value.Length > (maxLength + 1)) return $"{value[..maxLength]}.."; + return value[..maxLength]; } #endregion diff --git a/src/BreCalClient/MainWindow.xaml.cs b/src/BreCalClient/MainWindow.xaml.cs index 8776e46..7bbb0a0 100644 --- a/src/BreCalClient/MainWindow.xaml.cs +++ b/src/BreCalClient/MainWindow.xaml.cs @@ -1,6 +1,6 @@ // Copyright (c) 2023 schick Informatik // Description: Bremen calling main window -// +// using System; using System.Collections.Generic; @@ -19,6 +19,7 @@ using static BreCalClient.Extensions; using System.Collections.Concurrent; using Newtonsoft.Json; using System.Security.Principal; +using System.Net; namespace BreCalClient { @@ -40,9 +41,13 @@ namespace BreCalClient private readonly ConcurrentDictionary _allShipcallsDict = new(); private readonly ConcurrentDictionary _allShipCallsControlDict = new(); - private readonly List _visibleControlModels = new(); + private readonly List _visibleControlModels = new(); + + private readonly ShipcallApi _shipcallApi; + private readonly UserApi _userApi; + private readonly TimesApi _timesApi; + private readonly StaticApi _staticApi; - private readonly DefaultApi _api; private CancellationTokenSource _tokenSource = new(); private LoginResult? _loginResult; private bool _refreshImmediately = false; @@ -72,8 +77,14 @@ namespace BreCalClient public MainWindow() { InitializeComponent(); - _api = new DefaultApi(Properties.Settings.Default.API_URL); - _api.Configuration.ApiKeyPrefix["Authorization"] = "Bearer"; + _userApi = new UserApi(Properties.Settings.Default.API_URL); + _userApi.Configuration.ApiKeyPrefix["Authorization"] = "Bearer"; + _shipcallApi = new ShipcallApi(Properties.Settings.Default.API_URL); + _shipcallApi.Configuration.ApiKeyPrefix["Authorization"] = "Bearer"; + _timesApi = new TimesApi(Properties.Settings.Default.API_URL); + _timesApi.Configuration.ApiKeyPrefix["Authorization"] = "Bearer"; + _staticApi = new StaticApi(Properties.Settings.Default.API_URL); + _staticApi.Configuration.ApiKeyPrefix["Authorization"] = "Bearer"; } #endregion @@ -86,14 +97,14 @@ namespace BreCalClient labelVersion.Text = "V. " + System.Reflection.Assembly.GetExecutingAssembly().GetName().Version; if (!string.IsNullOrEmpty(Properties.Settings.Default.APP_TITLE)) this.Title = Properties.Settings.Default.APP_TITLE; - searchFilterControl.SearchFilterChanged += SearchFilterControl_SearchFilterChanged; + searchFilterControl.SearchFilterChanged += SearchFilterControl_SearchFilterChanged; searchFilterControl.LogoImageClicked += () => { - Process.Start("explorer", Properties.Settings.Default.LOGO_IMAGE_URL); + Process.Start("explorer", Properties.Settings.Default.LOGO_IMAGE_URL); }; this.comboBoxSortOrder.ItemsSource = Enum.GetValues(typeof(Extensions.SortOrder)); this.comboBoxSortOrder.SelectedIndex = (int)_sortOrder; - } + } private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e) { @@ -115,13 +126,16 @@ namespace BreCalClient try { - _loginResult = await _api.LoginPostAsync(_credentials); + _loginResult = await _userApi.LoginAsync(_credentials); if (_loginResult != null) { if (_loginResult.Id > 0) { this.busyIndicator.IsBusy = false; - this._api.Configuration.ApiKey["Authorization"] = _loginResult.Token; + this._userApi.Configuration.ApiKey["Authorization"] = _loginResult.Token; + this._shipcallApi.Configuration.ApiKey["Authorization"] = _loginResult.Token; + this._timesApi.Configuration.ApiKey["Authorization"] = _loginResult.Token; + this._staticApi.Configuration.ApiKey["Authorization"] = _loginResult.Token; this.LoadStaticLists(); this.labelUsername.Text = $"{_loginResult.FirstName} {_loginResult.LastName}"; _timer = new Timer(RefreshToken, null, 4000000, Timeout.Infinite); @@ -154,13 +168,16 @@ namespace BreCalClient { try { - _loginResult = _api.LoginPost(_credentials); + _loginResult = _userApi.Login(_credentials); if (_loginResult != null) { if (_loginResult.Id > 0) - { - this._api.Configuration.ApiKey["Authorization"] = _loginResult.Token; - } + { + this._userApi.Configuration.ApiKey["Authorization"] = _loginResult.Token; + this._timesApi.Configuration.ApiKey["Authorization"] = _loginResult.Token; + this._shipcallApi.Configuration.ApiKey["Authorization"] = _loginResult.Token; + this._staticApi.Configuration.ApiKey["Authorization"] = _loginResult.Token; + } } else { @@ -180,7 +197,7 @@ namespace BreCalClient private void buttonNew_Click(object sender, RoutedEventArgs e) { - NewWithModel(null); + NewWithModel(null); } private void NewWithModel(ShipcallControlModel? model) @@ -201,7 +218,7 @@ namespace BreCalClient esc.ShipcallModel.Shipcall?.Participants.Add(pa); try { - this._api.ShipcallsPost(esc.ShipcallModel.Shipcall); // save new ship call + this._shipcallApi.ShipcallCreate(esc.ShipcallModel.Shipcall); // save new ship call this.AddShipcall(esc.ShipcallModel); } catch (Exception ex) @@ -256,7 +273,7 @@ namespace BreCalClient }; try { - await _api.UserPutAsync(ud); + await _userApi.UserUpdateAsync(ud); MessageBox.Show(BreCalClient.Resources.Resources.textPasswordChanged, BreCalClient.Resources.Resources.textConfirmation, MessageBoxButton.OK, MessageBoxImage.Information); } catch (Exception ex) @@ -297,25 +314,25 @@ namespace BreCalClient this.UpdateUI(); } - #endregion + #endregion #region network operations private async void LoadStaticLists() { - BreCalLists.InitializeBerths(await _api.BerthsGetAsync()); - BreCalLists.InitializeShips(await _api.ShipsGetAsync()); - BreCalLists.InitializeParticipants(await _api.ParticipantsGetAsync()); + BreCalLists.InitializeBerths(await _staticApi.BerthsGetAsync()); + BreCalLists.InitializeShips(await _staticApi.ShipsGetAsync()); + BreCalLists.InitializeParticipants(await _staticApi.ParticipantsGetAsync()); this.searchFilterControl.SetBerths(BreCalLists.Berths); - + foreach (Participant participant in BreCalLists.Participants) - { + { if (_loginResult?.ParticipantId == participant.Id) { App.Participant = participant; EnableControlsForParticipant(); - } + } } this.searchFilterControl.SetAgencies(BreCalLists.Participants_Agent); @@ -328,7 +345,7 @@ namespace BreCalClient } _ = Task.Run(() => RefreshShipcalls()); - } + } public async Task RefreshShipcalls() { @@ -345,9 +362,9 @@ namespace BreCalClient try { if(this.searchPastDays != 0) - shipcalls = await _api.ShipcallsGetAsync(this.searchPastDays); + shipcalls = await _shipcallApi.ShipcallsGetAsync(this.searchPastDays); else - shipcalls = await _api.ShipcallsGetAsync(); + shipcalls = await _shipcallApi.ShipcallsGetAsync(); this.Dispatcher.Invoke(new Action(() => { @@ -356,7 +373,7 @@ namespace BreCalClient })); } catch (Exception ex) - { + { this.Dispatcher.Invoke(new Action(() => { labelGeneralStatus.Text = $"Connection {ConnectionStatus.FAILED}"; @@ -374,7 +391,7 @@ namespace BreCalClient foreach (Shipcall shipcall in shipcalls) { // load times for each shipcall - List currentTimes = await _api.TimesGetAsync(shipcall.Id); + List currentTimes = await _timesApi.TimesGetAsync(shipcall.Id); if(!_allShipcallsDict.ContainsKey(shipcall.Id)) { @@ -383,7 +400,7 @@ namespace BreCalClient { Shipcall = shipcall, Times = currentTimes - }; + }; this.AddShipcall(scm); } else @@ -392,8 +409,8 @@ namespace BreCalClient _allShipcallsDict[shipcall.Id].Shipcall = shipcall; _allShipcallsDict[shipcall.Id].Times = currentTimes; UpdateShipcall(_allShipcallsDict[shipcall.Id]); - } - } + } + } List existingIds = new(this._allShipcallsDict.Keys); @@ -429,7 +446,8 @@ namespace BreCalClient Shipcall shipcall = scm.Shipcall; if (BreCalLists.ShipLookupDict.ContainsKey(shipcall.ShipId)) scm.Ship = BreCalLists.ShipLookupDict[shipcall.ShipId].Ship; - if (shipcall.Type == 1) + + if (shipcall.Type == ShipcallType.Arrival) { if (BreCalLists.BerthLookupDict.ContainsKey(shipcall.ArrivalBerthId ?? 0)) scm.Berth = BreCalLists.BerthLookupDict[shipcall.ArrivalBerthId ?? 0].Name; @@ -446,7 +464,7 @@ namespace BreCalClient ShipcallControl sc = new() { Height = 120, - ShipcallControlModel = scm + ShipcallControlModel = scm }; sc.EditTimesRequested += Sc_EditTimesRequested; sc.EditRequested += Sc_EditRequested; @@ -454,7 +472,7 @@ namespace BreCalClient sc.RefreshData(); this._allShipCallsControlDict[scm.Shipcall.Id] = sc; }); - } + } private static void UpdateShipcall(ShipcallControlModel scm) { @@ -462,7 +480,8 @@ namespace BreCalClient Shipcall shipcall = scm.Shipcall; if (BreCalLists.ShipLookupDict.ContainsKey(shipcall.ShipId)) scm.Ship = BreCalLists.ShipLookupDict[shipcall.ShipId].Ship; - if (shipcall.Type == 1) + + if (shipcall.Type == ShipcallType.Arrival) { if (BreCalLists.BerthLookupDict.ContainsKey(shipcall.ArrivalBerthId ?? 0)) scm.Berth = BreCalLists.BerthLookupDict[shipcall.ArrivalBerthId ?? 0].Name; @@ -486,7 +505,7 @@ namespace BreCalClient _visibleControlModels.Remove(removeModel); this._allShipCallsControlDict.Remove(shipcallId, out _); - this._allShipcallsDict.Remove(shipcallId, out _); + this._allShipcallsDict.Remove(shipcallId, out _); } private void FilterShipcalls() @@ -530,12 +549,12 @@ namespace BreCalClient 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 => { if (x.Shipcall == null) return false; else return !sfm.Categories.Contains(x.Shipcall.Type); }); } if(!string.IsNullOrEmpty(sfm.SearchString)) @@ -567,28 +586,28 @@ namespace BreCalClient { _ = this._visibleControlModels.RemoveAll(x => x.Shipcall?.Canceled ?? false); } - + switch(this._sortOrder) { case Extensions.SortOrder.SHIP_NAME: - this._visibleControlModels.Sort((x, y) => { if (x.Ship == null) return 0; if (y.Ship == null) return 0; return x.Ship.Name.CompareTo(y.Ship.Name); }); + this._visibleControlModels.Sort((x, y) => { if (x.Ship == null) return 0; if (y.Ship == null) return 0; return x.Ship.Name.CompareTo(y.Ship.Name); }); break; case Extensions.SortOrder.MODIFIED: this._visibleControlModels.Sort((x, y) => { if (x.Shipcall == null) return 0; if (y.Shipcall == null) return 0; return DateTime.Compare(x.Shipcall.Modified ?? x.Shipcall.Created, y.Shipcall.Modified ?? x.Shipcall.Created); }); break; case Extensions.SortOrder.ETA_ETD: this._visibleControlModels.Sort((x, y) => - { + { if (x.Shipcall == null) return 0; if (y.Shipcall == null) return 0; - DateTime xDate = (x.Shipcall.Type == (int) Extensions.TypeEnum.Incoming) ? x.Eta ?? DateTime.Now : x.Etd ?? DateTime.Now; - DateTime yDate = (y.Shipcall.Type == (int) Extensions.TypeEnum.Incoming) ? y.Eta ?? DateTime.Now : y.Etd ?? DateTime.Now; + DateTime xDate = (x.Shipcall.Type == ShipcallType.Arrival) ? x.Eta ?? DateTime.Now : x.Etd ?? DateTime.Now; + DateTime yDate = (y.Shipcall.Type == ShipcallType.Arrival) ? y.Eta ?? DateTime.Now : y.Etd ?? DateTime.Now; return DateTime.Compare(xDate, yDate); }); break; default: break; - } + } } @@ -633,7 +652,7 @@ namespace BreCalClient #region control event handler private async void Sc_EditRequested(ShipcallControl obj) - { + { if (obj.ShipcallControlModel != null) { EditShipcallControl esc = new() @@ -646,10 +665,10 @@ namespace BreCalClient try { obj.ShipcallControlModel.Shipcall?.Participants.Clear(); - obj.ShipcallControlModel.UpdateTimesAssignments(this._api); + obj.ShipcallControlModel.UpdateTimesAssignments(this._timesApi); foreach(ParticipantAssignment pa in obj.ShipcallControlModel.AssignedParticipants.Values) obj.ShipcallControlModel.Shipcall?.Participants.Add(pa); - await _api.ShipcallsPutAsync(obj.ShipcallControlModel.Shipcall); + await _shipcallApi.ShipcallUpdateAsync(obj.ShipcallControlModel.Shipcall); obj.RefreshData(); _refreshImmediately = true; _tokenSource.Cancel(); @@ -679,7 +698,7 @@ namespace BreCalClient if (times != null) { etc.Times = times; - wasEdit = true; + wasEdit = true; } else { @@ -698,7 +717,7 @@ namespace BreCalClient { if (wasEdit) { - await _api.TimesPutAsync(etc.Times); + await _timesApi.TimesUpdateAsync(etc.Times); } else { @@ -707,7 +726,7 @@ namespace BreCalClient { etc.Times.ShipcallId = obj.ShipcallControlModel.Shipcall.Id; } - Id apiResultId = await _api.TimesPostAsync(etc.Times); + Id apiResultId = await _timesApi.TimesCreateAsync(etc.Times); etc.Times.Id = apiResultId.VarId; obj.ShipcallControlModel?.Times.Add(etc.Times); } @@ -726,13 +745,13 @@ namespace BreCalClient IEditShipcallTimesControl? editControl = null; switch(sc.ShipcallControlModel?.Shipcall?.Type) { - case (int)TypeEnum.Incoming: + case ShipcallType.Arrival: editControl = new EditTimesAgencyIncomingControl(); break; - case (int)TypeEnum.Outgoing: + case ShipcallType.Departure: editControl = new EditTimesAgencyOutgoingControl(); break; - case (int)TypeEnum.Shifting: + case ShipcallType.Shifting: editControl = new EditTimesAgencyShiftingControl(); break; } @@ -745,7 +764,7 @@ namespace BreCalClient { editControl.Times = times; wasEdit = true; - } + } else { if(editControl.ShipcallModel.AssignedParticipants.ContainsKey(ParticipantType.AGENCY)) @@ -756,7 +775,7 @@ namespace BreCalClient { try { - sc.ShipcallControlModel?.UpdateTimesAssignments(_api); // if the agent changed the assignment of the participant to another + sc.ShipcallControlModel?.UpdateTimesAssignments(_timesApi); // 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)) @@ -770,15 +789,15 @@ namespace BreCalClient if (wasEdit) { - await _api.TimesPutAsync(editControl.Times); + await _timesApi.TimesUpdateAsync(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); + Id resultAPI_Id = await _timesApi.TimesCreateAsync(editControl.Times); editControl.Times.Id = resultAPI_Id.VarId; sc.ShipcallControlModel?.Times.Add(editControl.Times); @@ -786,7 +805,7 @@ namespace BreCalClient 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); + await _shipcallApi.ShipcallUpdateAsync(editControl.ShipcallModel.Shipcall); _refreshImmediately = true; _tokenSource.Cancel(); } @@ -808,7 +827,7 @@ namespace BreCalClient Dispatcher.Invoke(new Action(() => { MessageBox.Show(message, caption, MessageBoxButton.OK, MessageBoxImage.Error); - })); + })); } private void EnableControlsForParticipant() @@ -816,7 +835,7 @@ namespace BreCalClient if (App.Participant.IsTypeFlagSet(Extensions.ParticipantType.BSMD)) this.buttonNew.Visibility = Visibility.Visible; } - + private void Hyperlink_RequestNavigate(object sender, System.Windows.Navigation.RequestNavigateEventArgs e) { Process.Start(new ProcessStartInfo(e.Uri.AbsoluteUri) { UseShellExecute = true }); diff --git a/src/BreCalClient/SearchFilterControl.xaml.cs b/src/BreCalClient/SearchFilterControl.xaml.cs index 11c6d65..44d4c7c 100644 --- a/src/BreCalClient/SearchFilterControl.xaml.cs +++ b/src/BreCalClient/SearchFilterControl.xaml.cs @@ -100,8 +100,8 @@ namespace BreCalClient } if(sfm.Categories != null) { - foreach(int category in sfm.Categories) - this.comboBoxCategories.SelectedItems.Add((Extensions.TypeEnum)category); + foreach(ShipcallType category in sfm.Categories) + this.comboBoxCategories.SelectedItems.Add(category); } if (sfm.SearchString != null) this.textBoxSearch.Text = sfm.SearchString; this.upDownShiplengthFrom.Value = sfm.ShipLengthFrom; @@ -124,7 +124,7 @@ namespace BreCalClient private void UserControl_Loaded(object sender, System.Windows.RoutedEventArgs e) { - this.comboBoxCategories.ItemsSource = Enum.GetValues(typeof(Extensions.TypeEnum)); + this.comboBoxCategories.ItemsSource = Enum.GetValues(typeof(ShipcallType)); } private void datePickerETAFrom_SelectedDateChanged(object sender, SelectionChangedEventArgs e) @@ -142,7 +142,7 @@ namespace BreCalClient private void comboBoxCategories_ItemSelectionChanged(object sender, Xceed.Wpf.Toolkit.Primitives.ItemSelectionChangedEventArgs e) { _model.Categories.Clear(); - foreach(int category in comboBoxCategories.SelectedItems) + foreach(ShipcallType category in comboBoxCategories.SelectedItems) _model.Categories.Add(category); SearchFilterChanged?.Invoke(); diff --git a/src/BreCalClient/SearchFilterModel.cs b/src/BreCalClient/SearchFilterModel.cs index af5e7d5..f642e84 100644 --- a/src/BreCalClient/SearchFilterModel.cs +++ b/src/BreCalClient/SearchFilterModel.cs @@ -19,7 +19,7 @@ namespace BreCalClient public DateTime? EtaTo { get; set; } - public List Categories { get; set; } = new(); + public List Categories { get; set; } = new(); public List Agencies { get; set; } = new(); diff --git a/src/BreCalClient/ShipcallControl.xaml.cs b/src/BreCalClient/ShipcallControl.xaml.cs index c897c5d..879232d 100644 --- a/src/BreCalClient/ShipcallControl.xaml.cs +++ b/src/BreCalClient/ShipcallControl.xaml.cs @@ -1,6 +1,6 @@ // Copyright (c) 2023 schick Informatik // Description: Show general shipcall info -// +// using BreCalClient.misc.Model; using log4net; @@ -44,7 +44,7 @@ namespace BreCalClient public event Action? EditAgencyRequested; - internal event Action? EditTimesRequested; + internal event Action? EditTimesRequested; #endregion @@ -53,7 +53,7 @@ namespace BreCalClient /// /// this is our datasource /// - public ShipcallControlModel? ShipcallControlModel { get; set; } + public ShipcallControlModel? ShipcallControlModel { get; set; } #endregion @@ -131,7 +131,7 @@ namespace BreCalClient { this.labelTerminal.FontWeight = FontWeights.Bold; this.labelTerminal.Foreground = Brushes.LightYellow; - } + } else { this.labelTerminal.FontWeight = FontWeights.Normal; @@ -274,7 +274,7 @@ namespace BreCalClient this.textBlockBerth.Text = this.ShipcallControlModel?.Berth; this.textBlockCallsign.Text = this.ShipcallControlModel?.Ship?.Callsign; - if (this.ShipcallControlModel?.Shipcall?.Type == ShipcallType.Arrival) + if (this.ShipcallControlModel?.Shipcall?.Type == ShipcallType.Arrival) { this.textBlockETA.Text = this.ShipcallControlModel?.Shipcall?.Eta?.ToString("dd.MM. HH:mm"); } @@ -287,7 +287,7 @@ namespace BreCalClient 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 + // 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 != ShipcallType.Arrival) @@ -301,7 +301,7 @@ namespace BreCalClient } if (this.ShipcallControlModel != null) - { + { Times? agencyTimes = this.ShipcallControlModel?.GetTimesForParticipantType(Extensions.ParticipantType.AGENCY); if (agencyTimes != null) @@ -314,7 +314,7 @@ namespace BreCalClient { this.labelAgencyETAETDValue.Content = agencyTimes.EtdBerth.HasValue ? agencyTimes.EtdBerth.Value.ToString("dd.MM.yyyy HH:mm") : "- / -"; } - } + } else { // no agency times set (yet) @@ -408,7 +408,7 @@ namespace BreCalClient this.textBlockTerminalRemarks.Text = ""; this.textBlockTerminalBerthRemarks.Text = ""; } - + } this.DataContext = this.ShipcallControlModel; } @@ -432,7 +432,7 @@ namespace BreCalClient { if(App.Participant.IsTypeFlagSet(Extensions.ParticipantType.BSMD)) this.EditRequested?.Invoke(this); - } + } private void Image_PreviewMouseUp(object sender, System.Windows.Input.MouseButtonEventArgs e) { @@ -440,10 +440,10 @@ namespace BreCalClient } private void labelAgent_PreviewMouseUp(object sender, System.Windows.Input.MouseButtonEventArgs e) - { + { Times? times = this.ShipcallControlModel?.GetTimesForParticipantType(Extensions.ParticipantType.AGENCY); - this.EditAgencyRequested?.Invoke(this, times); - } + this.EditAgencyRequested?.Invoke(this, times); + } private void labelMooring_PreviewMouseUp(object sender, System.Windows.Input.MouseButtonEventArgs e) { @@ -453,7 +453,7 @@ namespace BreCalClient private void labelPortAuthority_PreviewMouseUp(object sender, System.Windows.Input.MouseButtonEventArgs e) { - Times? times = this.ShipcallControlModel?.GetTimesForParticipantType(Extensions.ParticipantType.PORT_ADMINISTRATION); + Times? times = this.ShipcallControlModel?.GetTimesForParticipantType(Extensions.ParticipantType.PORT_ADMINISTRATION); this.EditTimesRequested?.Invoke(this, times, Extensions.ParticipantType.PORT_ADMINISTRATION); } diff --git a/src/BreCalClient/ShipcallControlModel.cs b/src/BreCalClient/ShipcallControlModel.cs index 52f056c..4210c3d 100644 --- a/src/BreCalClient/ShipcallControlModel.cs +++ b/src/BreCalClient/ShipcallControlModel.cs @@ -188,7 +188,7 @@ namespace BreCalClient /// 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) + internal async void UpdateTimesAssignments(TimesApi api) { foreach (Extensions.ParticipantType participantType in this.AssignedParticipants.Keys) { @@ -197,7 +197,7 @@ namespace BreCalClient if(times.ParticipantId != this.AssignedParticipants[participantType].ParticipantId) { times.ParticipantId = this.AssignedParticipants[participantType].ParticipantId; - await _api.TimesPutAsync(times); + await api.TimesUpdateAsync(times); } } @@ -224,7 +224,7 @@ namespace BreCalClient foreach(Times times in deleteTimes) { - _api.TimesDelete(times.Id); + api.TimesDelete(times.Id); this.Times.Remove(times); } }