Compare commits
26 Commits
develop
...
release/1.
| Author | SHA1 | Date | |
|---|---|---|---|
| 3fad50994e | |||
| 33dd7518ef | |||
| 5459e1dd78 | |||
| f7fed255d5 | |||
| c3d8e901c4 | |||
| be08ad6a3a | |||
| 4f96ff066c | |||
| 2600b6ebc3 | |||
| 27e20e15f7 | |||
| 864e023495 | |||
| 70977e9abd | |||
| d536d9479e | |||
| c253de0ba8 | |||
| e28a5c1560 | |||
| 2df14d957b | |||
| c322564996 | |||
| f035f2427f | |||
| 2ff4b45a52 | |||
| 7f011d7dc9 | |||
| f0c33868d2 | |||
| 86408adb7c | |||
| 17ca43646f | |||
| b5c100294c | |||
| ddd2efa86d | |||
| 05d02773fd | |||
| 8e2adb3daa |
@ -4971,7 +4971,7 @@ namespace BreCalClient.misc.Client
|
|||||||
{
|
{
|
||||||
Proxy = null;
|
Proxy = null;
|
||||||
UserAgent = WebUtility.UrlEncode("OpenAPI-Generator/1.0.0/csharp");
|
UserAgent = WebUtility.UrlEncode("OpenAPI-Generator/1.0.0/csharp");
|
||||||
BasePath = "https://brecaldevel.bsmd-emswe.eu";
|
BasePath = "https://brecal.bsmd-emswe.eu";
|
||||||
DefaultHeaders = new ConcurrentDictionary<string, string>();
|
DefaultHeaders = new ConcurrentDictionary<string, string>();
|
||||||
ApiKey = new ConcurrentDictionary<string, string>();
|
ApiKey = new ConcurrentDictionary<string, string>();
|
||||||
ApiKeyPrefix = new ConcurrentDictionary<string, string>();
|
ApiKeyPrefix = new ConcurrentDictionary<string, string>();
|
||||||
@ -4979,7 +4979,7 @@ namespace BreCalClient.misc.Client
|
|||||||
{
|
{
|
||||||
{
|
{
|
||||||
new Dictionary<string, object> {
|
new Dictionary<string, object> {
|
||||||
{"url", "https://brecaldevel.bsmd-emswe.eu"},
|
{"url", "https://brecal.bsmd-emswe.eu"},
|
||||||
{"description", "Development server hosted on vcup"},
|
{"description", "Development server hosted on vcup"},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -4998,7 +4998,7 @@ namespace BreCalClient.misc.Client
|
|||||||
IDictionary<string, string> defaultHeaders,
|
IDictionary<string, string> defaultHeaders,
|
||||||
IDictionary<string, string> apiKey,
|
IDictionary<string, string> apiKey,
|
||||||
IDictionary<string, string> apiKeyPrefix,
|
IDictionary<string, string> apiKeyPrefix,
|
||||||
string basePath = "https://brecaldevel.bsmd-emswe.eu") : this()
|
string basePath = "https://brecal.bsmd-emswe.eu") : this()
|
||||||
{
|
{
|
||||||
if (string.IsNullOrWhiteSpace(basePath))
|
if (string.IsNullOrWhiteSpace(basePath))
|
||||||
throw new ArgumentException("The provided basePath is invalid.", "basePath");
|
throw new ArgumentException("The provided basePath is invalid.", "basePath");
|
||||||
|
|||||||
@ -14,8 +14,8 @@ info:
|
|||||||
name: Use at your own risk
|
name: Use at your own risk
|
||||||
url: 'https://www.bsmd.de/license'
|
url: 'https://www.bsmd.de/license'
|
||||||
servers:
|
servers:
|
||||||
- url: 'https://brecaldevel.bsmd-emswe.eu'
|
- url: 'https://brecal.bsmd-emswe.eu'
|
||||||
description: Development server hosted on vcup
|
description: Test server hosted on vcup
|
||||||
tags:
|
tags:
|
||||||
- name: user
|
- name: user
|
||||||
- name: shipcall
|
- name: shipcall
|
||||||
|
|||||||
@ -1 +1 @@
|
|||||||
1.6.0.4
|
1.6.0.8
|
||||||
@ -29,16 +29,16 @@
|
|||||||
<applicationSettings>
|
<applicationSettings>
|
||||||
<BreCalClient.Properties.Settings>
|
<BreCalClient.Properties.Settings>
|
||||||
<setting name="BG_COLOR" serializeAs="String">
|
<setting name="BG_COLOR" serializeAs="String">
|
||||||
<value>#1D751F</value>
|
<value>#203864</value>
|
||||||
</setting>
|
</setting>
|
||||||
<setting name="APP_TITLE" serializeAs="String">
|
<setting name="APP_TITLE" serializeAs="String">
|
||||||
<value>!!Bremen calling Testversion!!</value>
|
<value>Bremen calling</value>
|
||||||
</setting>
|
</setting>
|
||||||
<setting name="LOGO_IMAGE_URL" serializeAs="String">
|
<setting name="LOGO_IMAGE_URL" serializeAs="String">
|
||||||
<value>https://www.textbausteine.net/</value>
|
<value>https://www.textbausteine.net/</value>
|
||||||
</setting>
|
</setting>
|
||||||
<setting name="API_URL" serializeAs="String">
|
<setting name="API_URL" serializeAs="String">
|
||||||
<value>https://brecaldevel.bsmd-emswe.eu</value>
|
<value>https://brecal.bsmd-emswe.eu</value>
|
||||||
</setting>
|
</setting>
|
||||||
</BreCalClient.Properties.Settings>
|
</BreCalClient.Properties.Settings>
|
||||||
</applicationSettings>
|
</applicationSettings>
|
||||||
|
|||||||
@ -8,12 +8,12 @@
|
|||||||
<SignAssembly>True</SignAssembly>
|
<SignAssembly>True</SignAssembly>
|
||||||
<StartupObject>BreCalClient.App</StartupObject>
|
<StartupObject>BreCalClient.App</StartupObject>
|
||||||
<AssemblyOriginatorKeyFile>..\..\misc\brecal.snk</AssemblyOriginatorKeyFile>
|
<AssemblyOriginatorKeyFile>..\..\misc\brecal.snk</AssemblyOriginatorKeyFile>
|
||||||
<AssemblyVersion>1.6.0.4</AssemblyVersion>
|
<AssemblyVersion>1.6.1.0</AssemblyVersion>
|
||||||
<FileVersion>1.6.0.4</FileVersion>
|
<FileVersion>1.6.1.0</FileVersion>
|
||||||
<Title>Bremen calling client</Title>
|
<Title>Bremen calling client</Title>
|
||||||
<Description>A Windows WPF client for the Bremen calling API.</Description>
|
<Description>A Windows WPF client for the Bremen calling API.</Description>
|
||||||
<ApplicationIcon>containership.ico</ApplicationIcon>
|
<ApplicationIcon>containership.ico</ApplicationIcon>
|
||||||
<AssemblyName>BreCalDevelClient</AssemblyName>
|
<AssemblyName>BreCalClient</AssemblyName>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|||||||
@ -42,13 +42,14 @@ namespace BreCalClient
|
|||||||
|
|
||||||
public ShipApi? ShipApi { get; set; }
|
public ShipApi? ShipApi { get; set; }
|
||||||
|
|
||||||
|
public bool IsCreate { get; set; } = false;
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Event handler
|
#region Event handler
|
||||||
|
|
||||||
private void Window_Loaded(object sender, RoutedEventArgs e)
|
private void Window_Loaded(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
this.comboBoxAgency.ItemsSource = BreCalLists.Participants_Agent;
|
|
||||||
|
|
||||||
this.comboBoxShip.ItemsSource = BreCalLists.Ships;
|
this.comboBoxShip.ItemsSource = BreCalLists.Ships;
|
||||||
Array types = Enum.GetValues(typeof(ShipcallType));
|
Array types = Enum.GetValues(typeof(ShipcallType));
|
||||||
@ -58,10 +59,7 @@ namespace BreCalClient
|
|||||||
{
|
{
|
||||||
if (!first) shipcallTypes.Add(shipcallType);
|
if (!first) shipcallTypes.Add(shipcallType);
|
||||||
else first = false;
|
else first = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.comboBoxArrivalBerth.ItemsSource = BreCalLists.Berths;
|
|
||||||
this.comboBoxDepartureBerth.ItemsSource = BreCalLists.Berths;
|
|
||||||
|
|
||||||
this.comboBoxTimeRef.ItemsSource = BreCalLists.TimeRefs;
|
this.comboBoxTimeRef.ItemsSource = BreCalLists.TimeRefs;
|
||||||
this.comboBoxHarbour.ItemsSource = BreCalLists.Ports.Where(x => App.Participant.Ports.Contains(x.Id));
|
this.comboBoxHarbour.ItemsSource = BreCalLists.Ports.Where(x => App.Participant.Ports.Contains(x.Id));
|
||||||
@ -190,6 +188,8 @@ namespace BreCalClient
|
|||||||
|
|
||||||
void CheckForCompletion()
|
void CheckForCompletion()
|
||||||
{
|
{
|
||||||
|
if (this.ShipcallModel.Shipcall?.Canceled ?? false) return; // Cancelled shipcall never clicks ok
|
||||||
|
|
||||||
bool isEnabled = true;
|
bool isEnabled = true;
|
||||||
|
|
||||||
isEnabled &= this.comboBoxShip.SelectedItem != null;
|
isEnabled &= this.comboBoxShip.SelectedItem != null;
|
||||||
@ -324,8 +324,8 @@ namespace BreCalClient
|
|||||||
this.comboBoxTimeRef.SelectedIndex = this.ShipcallModel.Shipcall.TimeRefPoint ?? 1;
|
this.comboBoxTimeRef.SelectedIndex = this.ShipcallModel.Shipcall.TimeRefPoint ?? 1;
|
||||||
this.comboBoxCategories.SelectedItem = new EnumToStringConverter().Convert(this.ShipcallModel.Shipcall.Type, typeof(ShipcallType), new object(), System.Globalization.CultureInfo.CurrentCulture);
|
this.comboBoxCategories.SelectedItem = new EnumToStringConverter().Convert(this.ShipcallModel.Shipcall.Type, typeof(ShipcallType), new object(), System.Globalization.CultureInfo.CurrentCulture);
|
||||||
if (this.ShipcallModel.Shipcall.Eta != DateTime.MinValue)
|
if (this.ShipcallModel.Shipcall.Eta != DateTime.MinValue)
|
||||||
this.datePickerETA.Value = this.ShipcallModel.Shipcall.Eta;
|
this.datePickerETA.Value = this.ShipcallModel.Shipcall.Eta;
|
||||||
// this.textBoxVoyage.Text = this.ShipcallModel.Shipcall.Voyage;
|
|
||||||
this.datePickerETD.Value = this.ShipcallModel.Shipcall.Etd;
|
this.datePickerETD.Value = this.ShipcallModel.Shipcall.Etd;
|
||||||
if (BreCalLists.Ships.Find(x => x.Ship.Id == this.ShipcallModel.Shipcall.ShipId) != null)
|
if (BreCalLists.Ships.Find(x => x.Ship.Id == this.ShipcallModel.Shipcall.ShipId) != null)
|
||||||
{
|
{
|
||||||
@ -336,6 +336,16 @@ namespace BreCalClient
|
|||||||
}
|
}
|
||||||
this.checkBoxCancelled.IsChecked = this.ShipcallModel.Shipcall.Canceled ?? false;
|
this.checkBoxCancelled.IsChecked = this.ShipcallModel.Shipcall.Canceled ?? false;
|
||||||
|
|
||||||
|
if (BreCalLists.PortLookupDict.ContainsKey(this.ShipcallModel.Shipcall.PortId))
|
||||||
|
this.comboBoxHarbour.SelectedValue = this.ShipcallModel.Shipcall.PortId;
|
||||||
|
List<Berth> availableBerths = BreCalLists.GetBerthsByPort(this.ShipcallModel.Shipcall.PortId);
|
||||||
|
this.comboBoxArrivalBerth.ItemsSource = availableBerths;
|
||||||
|
this.comboBoxDepartureBerth.ItemsSource = availableBerths;
|
||||||
|
|
||||||
|
// Filter agency combobox by port
|
||||||
|
List<Participant> availableAgencies = BreCalLists.GetParticipants(this.ShipcallModel.Shipcall.PortId, ParticipantType.AGENCY);
|
||||||
|
this.comboBoxAgency.ItemsSource = availableAgencies;
|
||||||
|
|
||||||
if (this.ShipcallModel.Shipcall.Type != ShipcallType.Shifting) // incoming, outgoing
|
if (this.ShipcallModel.Shipcall.Type != ShipcallType.Shifting) // incoming, outgoing
|
||||||
{
|
{
|
||||||
this.comboBoxArrivalBerth.SelectedValue = this.ShipcallModel.Shipcall.ArrivalBerthId;
|
this.comboBoxArrivalBerth.SelectedValue = this.ShipcallModel.Shipcall.ArrivalBerthId;
|
||||||
@ -356,9 +366,7 @@ namespace BreCalClient
|
|||||||
this.comboBoxAgency.SelectedValue = this.ShipcallModel.AssignedParticipants[ParticipantType.AGENCY].ParticipantId;
|
this.comboBoxAgency.SelectedValue = this.ShipcallModel.AssignedParticipants[ParticipantType.AGENCY].ParticipantId;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (BreCalLists.PortLookupDict.ContainsKey(this.ShipcallModel.Shipcall.PortId))
|
|
||||||
this.comboBoxHarbour.SelectedValue = this.ShipcallModel.Shipcall.PortId;
|
|
||||||
this.comboBoxHarbour.SelectionChanged += this.comboBoxHarbour_SelectionChanged;
|
this.comboBoxHarbour.SelectionChanged += this.comboBoxHarbour_SelectionChanged;
|
||||||
|
|
||||||
this.comboBoxHarbour.IsEnabled = this.ShipcallModel.AllowPortChange;
|
this.comboBoxHarbour.IsEnabled = this.ShipcallModel.AllowPortChange;
|
||||||
@ -372,6 +380,8 @@ namespace BreCalClient
|
|||||||
|
|
||||||
bool editRightGrantedForBSMD = false;
|
bool editRightGrantedForBSMD = false;
|
||||||
|
|
||||||
|
if (this.ShipcallModel.Shipcall?.Canceled ?? false) return; // do not allow edit on canceled shipcall
|
||||||
|
|
||||||
// Special case: Selected Agency allows BSMD to edit their fields
|
// Special case: Selected Agency allows BSMD to edit their fields
|
||||||
if (this.comboBoxAgency.SelectedIndex >= 0)
|
if (this.comboBoxAgency.SelectedIndex >= 0)
|
||||||
{
|
{
|
||||||
@ -395,6 +405,7 @@ namespace BreCalClient
|
|||||||
this.datePickerETD.IsEnabled = isAgency || isBsmd;
|
this.datePickerETD.IsEnabled = isAgency || isBsmd;
|
||||||
|
|
||||||
this.labelBSMDGranted.Visibility = editRightGrantedForBSMD ? Visibility.Visible : Visibility.Hidden;
|
this.labelBSMDGranted.Visibility = editRightGrantedForBSMD ? Visibility.Visible : Visibility.Hidden;
|
||||||
|
this.comboBoxHarbour.IsEnabled = this.IsCreate && this.ShipcallModel.AllowPortChange;
|
||||||
|
|
||||||
this.comboBoxCategories_SelectionChanged(null, null);
|
this.comboBoxCategories_SelectionChanged(null, null);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -366,7 +366,7 @@ namespace BreCalClient
|
|||||||
|
|
||||||
private void CheckOKButton()
|
private void CheckOKButton()
|
||||||
{
|
{
|
||||||
this.buttonOK.IsEnabled = _editing && RequiredFieldsSet();
|
this.buttonOK.IsEnabled = _editing && RequiredFieldsSet() && !(this.ShipcallModel.Shipcall?.Canceled ?? false);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|||||||
@ -356,7 +356,7 @@ namespace BreCalClient
|
|||||||
|
|
||||||
private void CheckOKButton()
|
private void CheckOKButton()
|
||||||
{
|
{
|
||||||
this.buttonOK.IsEnabled = _editing && RequiredFieldsSet();
|
this.buttonOK.IsEnabled = _editing && RequiredFieldsSet() && !(this.ShipcallModel.Shipcall?.Canceled ?? false);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|||||||
@ -394,7 +394,7 @@ namespace BreCalClient
|
|||||||
|
|
||||||
private void CheckOKButton()
|
private void CheckOKButton()
|
||||||
{
|
{
|
||||||
this.buttonOK.IsEnabled = _editing && RequiredFieldsSet();
|
this.buttonOK.IsEnabled = _editing && RequiredFieldsSet() && !(this.ShipcallModel.Shipcall?.Canceled ?? false);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|||||||
@ -173,13 +173,13 @@ namespace BreCalClient
|
|||||||
{
|
{
|
||||||
this.textBoxRemarks.Text = this.Times.Remarks;
|
this.textBoxRemarks.Text = this.Times.Remarks;
|
||||||
this.datePickerETABerth.Value = this.Times.EtaBerth;
|
this.datePickerETABerth.Value = this.Times.EtaBerth;
|
||||||
if(this.datePickerETABerth.IsEnabled && (this.Times.EtaBerth == null) && (this.AgencyTimes?.EtaBerth != null) && (ShipcallModel.Shipcall?.Type == ShipcallType.Arrival) && (this.AgencyTimes?.EtaBerth > DateTime.Now))
|
if(this.datePickerETABerth.IsEnabled && (this.Times.EtaBerth == null) && (this.AgencyTimes?.EtaBerth != null) && (ShipcallModel.Shipcall?.Type == ShipcallType.Arrival) && (this.AgencyTimes?.EtaBerth > DateTime.Now.AddDays(-1)))
|
||||||
{
|
{
|
||||||
this.datePickerETABerth.Value = this.AgencyTimes.EtaBerth;
|
this.datePickerETABerth.Value = this.AgencyTimes.EtaBerth;
|
||||||
if (this.datePickerETABerth.Template.FindName("PART_TextBox", this.datePickerETABerth) is WatermarkTextBox tb) { tb.Focus(); tb.SelectAll(); }
|
if (this.datePickerETABerth.Template.FindName("PART_TextBox", this.datePickerETABerth) is WatermarkTextBox tb) { tb.Focus(); tb.SelectAll(); }
|
||||||
}
|
}
|
||||||
this.datePickerETDBerth.Value = this.Times.EtdBerth;
|
this.datePickerETDBerth.Value = this.Times.EtdBerth;
|
||||||
if(this.datePickerETDBerth.IsEnabled && (this.Times.EtdBerth == null) && (this.AgencyTimes?.EtdBerth != null) && ((ShipcallModel.Shipcall?.Type == ShipcallType.Departure) || (ShipcallModel.Shipcall?.Type == ShipcallType.Shifting)) && (this.AgencyTimes?.EtdBerth > DateTime.Now))
|
if(this.datePickerETDBerth.IsEnabled && (this.Times.EtdBerth == null) && (this.AgencyTimes?.EtdBerth != null) && ((ShipcallModel.Shipcall?.Type == ShipcallType.Departure) || (ShipcallModel.Shipcall?.Type == ShipcallType.Shifting)) && (this.AgencyTimes?.EtdBerth > DateTime.Now.AddDays(-1)))
|
||||||
{
|
{
|
||||||
this.datePickerETDBerth.Value = this.AgencyTimes.EtdBerth;
|
this.datePickerETDBerth.Value = this.AgencyTimes.EtdBerth;
|
||||||
if (this.datePickerETDBerth.Template.FindName("PART_TextBox", this.datePickerETDBerth) is WatermarkTextBox tb) tb.SelectAll();
|
if (this.datePickerETDBerth.Template.FindName("PART_TextBox", this.datePickerETDBerth) is WatermarkTextBox tb) tb.SelectAll();
|
||||||
@ -190,14 +190,14 @@ namespace BreCalClient
|
|||||||
this.datePickerATA.Value = this.Times.Ata;
|
this.datePickerATA.Value = this.Times.Ata;
|
||||||
this.datePickerATD.Value = this.Times.Atd;
|
this.datePickerATD.Value = this.Times.Atd;
|
||||||
this.datePickerETABerth_End.Value = this.Times.EtaIntervalEnd;
|
this.datePickerETABerth_End.Value = this.Times.EtaIntervalEnd;
|
||||||
if (this.datePickerETABerth_End.IsEnabled && (this.Times.EtaIntervalEnd == null) && (this.Times.EtaBerth == null) && (this.AgencyTimes?.EtaIntervalEnd != null) && (ShipcallModel.Shipcall?.Type == ShipcallType.Arrival))
|
if (this.datePickerETABerth_End.IsEnabled && (this.Times.EtaIntervalEnd == null) && (this.Times.EtaBerth == null) && (this.AgencyTimes?.EtaIntervalEnd != null) && (ShipcallModel.Shipcall?.Type == ShipcallType.Arrival) && (this.AgencyTimes?.EtaBerth > DateTime.Now.AddDays(-1)))
|
||||||
{
|
{
|
||||||
this.datePickerETABerth_End.Value = this.AgencyTimes.EtaIntervalEnd;
|
this.datePickerETABerth_End.Value = this.AgencyTimes.EtaIntervalEnd;
|
||||||
//if (this.datePickerETABerth_End.Template.FindName("PART_TextBox", this.datePickerETABerth_End) is WatermarkTextBox tb) { tb.Focus(); tb.SelectAll(); }
|
//if (this.datePickerETABerth_End.Template.FindName("PART_TextBox", this.datePickerETABerth_End) is WatermarkTextBox tb) { tb.Focus(); tb.SelectAll(); }
|
||||||
}
|
}
|
||||||
|
|
||||||
this.datePickerETDBerth_End.Value = this.Times.EtdIntervalEnd;
|
this.datePickerETDBerth_End.Value = this.Times.EtdIntervalEnd;
|
||||||
if (this.datePickerETDBerth_End.IsEnabled && (this.Times.EtdIntervalEnd == null) && (this.Times.EtdBerth == null) && (this.AgencyTimes?.EtdIntervalEnd != null) && ((ShipcallModel.Shipcall?.Type == ShipcallType.Departure) || (ShipcallModel.Shipcall?.Type == ShipcallType.Shifting)))
|
if (this.datePickerETDBerth_End.IsEnabled && (this.Times.EtdIntervalEnd == null) && (this.Times.EtdBerth == null) && (this.AgencyTimes?.EtdIntervalEnd != null) && ((ShipcallModel.Shipcall?.Type == ShipcallType.Departure) || (ShipcallModel.Shipcall?.Type == ShipcallType.Shifting)) && (this.AgencyTimes?.EtdBerth > DateTime.Now.AddDays(-1)))
|
||||||
{
|
{
|
||||||
this.datePickerETDBerth_End.Value = this.AgencyTimes.EtdIntervalEnd;
|
this.datePickerETDBerth_End.Value = this.AgencyTimes.EtdIntervalEnd;
|
||||||
//if (this.datePickerETDBerth_End.Template.FindName("PART_TextBox", this.datePickerETDBerth_End) is WatermarkTextBox tb) { tb.Focus(); tb.SelectAll(); }
|
//if (this.datePickerETDBerth_End.Template.FindName("PART_TextBox", this.datePickerETDBerth_End) is WatermarkTextBox tb) { tb.Focus(); tb.SelectAll(); }
|
||||||
@ -259,7 +259,7 @@ namespace BreCalClient
|
|||||||
|
|
||||||
// setting en/dis-abled
|
// setting en/dis-abled
|
||||||
|
|
||||||
if (this.Times.ParticipantId != App.Participant.Id)
|
if ((this.Times.ParticipantId != App.Participant.Id) || (this.ShipcallModel.Shipcall?.Canceled ?? false))
|
||||||
{
|
{
|
||||||
this.buttonFixedOrder.IsEnabled = false;
|
this.buttonFixedOrder.IsEnabled = false;
|
||||||
this.buttonOK.IsEnabled = false;
|
this.buttonOK.IsEnabled = false;
|
||||||
|
|||||||
@ -217,7 +217,7 @@ namespace BreCalClient
|
|||||||
|
|
||||||
private void EnableControls()
|
private void EnableControls()
|
||||||
{
|
{
|
||||||
if (this.Times.ParticipantId != App.Participant.Id)
|
if ((this.Times.ParticipantId != App.Participant.Id) || (this.ShipcallModel.Shipcall?.Canceled ?? false))
|
||||||
{
|
{
|
||||||
this.buttonOK.IsEnabled = false;
|
this.buttonOK.IsEnabled = false;
|
||||||
return;
|
return;
|
||||||
|
|||||||
@ -168,15 +168,25 @@ namespace BreCalClient
|
|||||||
{
|
{
|
||||||
if (_loginResult.Id > 0)
|
if (_loginResult.Id > 0)
|
||||||
{
|
{
|
||||||
Mouse.OverrideCursor = Cursors.Wait;
|
Mouse.OverrideCursor = Cursors.Wait;
|
||||||
this.busyIndicator.IsBusy = false;
|
|
||||||
this._userApi.Configuration.ApiKey["Authorization"] = _loginResult.Token;
|
this._userApi.Configuration.ApiKey["Authorization"] = _loginResult.Token;
|
||||||
this._shipcallApi.Configuration.ApiKey["Authorization"] = _loginResult.Token;
|
this._shipcallApi.Configuration.ApiKey["Authorization"] = _loginResult.Token;
|
||||||
this._timesApi.Configuration.ApiKey["Authorization"] = _loginResult.Token;
|
this._timesApi.Configuration.ApiKey["Authorization"] = _loginResult.Token;
|
||||||
this._staticApi.Configuration.ApiKey["Authorization"] = _loginResult.Token;
|
this._staticApi.Configuration.ApiKey["Authorization"] = _loginResult.Token;
|
||||||
this._shipApi.Configuration.ApiKey["Authorization"] = _loginResult.Token;
|
this._shipApi.Configuration.ApiKey["Authorization"] = _loginResult.Token;
|
||||||
this.LoadStaticLists();
|
bool loadingSuccessful = await this.LoadStaticLists();
|
||||||
this.labelUsername.Text = $"{_loginResult.FirstName} {_loginResult.LastName}";
|
if (loadingSuccessful)
|
||||||
|
{
|
||||||
|
this.labelUsername.Text = $"{_loginResult.FirstName} {_loginResult.LastName}";
|
||||||
|
this.busyIndicator.IsBusy = false;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Mouse.OverrideCursor = null;
|
||||||
|
textUsername.Text = "";
|
||||||
|
textPassword.Password = "";
|
||||||
|
textUsername.Focus();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
labelGeneralStatus.Text = $"Connection {ConnectionStatus.SUCCESSFUL}";
|
labelGeneralStatus.Text = $"Connection {ConnectionStatus.SUCCESSFUL}";
|
||||||
@ -247,7 +257,8 @@ namespace BreCalClient
|
|||||||
EditShipcallControl esc = new()
|
EditShipcallControl esc = new()
|
||||||
{
|
{
|
||||||
ShipEditingEnabled = App.Participant.IsTypeFlagSet(Extensions.ParticipantType.BSMD),
|
ShipEditingEnabled = App.Participant.IsTypeFlagSet(Extensions.ParticipantType.BSMD),
|
||||||
ShipApi = _shipApi
|
ShipApi = _shipApi,
|
||||||
|
IsCreate = true
|
||||||
};
|
};
|
||||||
if (model != null)
|
if (model != null)
|
||||||
esc.ShipcallModel = model;
|
esc.ShipcallModel = model;
|
||||||
@ -340,7 +351,7 @@ namespace BreCalClient
|
|||||||
{
|
{
|
||||||
this.Dispatcher.Invoke(new Action(() =>
|
this.Dispatcher.Invoke(new Action(() =>
|
||||||
{
|
{
|
||||||
ShowErrorDialog(ex.Message, "Error saving user information");
|
ShowErrorDialog(ex.Message, "Error saving user information");
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -373,10 +384,20 @@ namespace BreCalClient
|
|||||||
private void comboBoxPorts_ItemSelectionChanged(object sender, Xceed.Wpf.Toolkit.Primitives.ItemSelectionChangedEventArgs e)
|
private void comboBoxPorts_ItemSelectionChanged(object sender, Xceed.Wpf.Toolkit.Primitives.ItemSelectionChangedEventArgs e)
|
||||||
{
|
{
|
||||||
this.searchFilterControl.SearchFilter.Ports.Clear();
|
this.searchFilterControl.SearchFilter.Ports.Clear();
|
||||||
|
|
||||||
|
List<Berth> berths = new List<Berth>();
|
||||||
foreach (Port port in comboBoxPorts.SelectedItems)
|
foreach (Port port in comboBoxPorts.SelectedItems)
|
||||||
|
{
|
||||||
this.searchFilterControl.SearchFilter.Ports.Add(port.Id);
|
this.searchFilterControl.SearchFilter.Ports.Add(port.Id);
|
||||||
|
berths.AddRange(BreCalLists.GetBerthsByPort(port.Id));
|
||||||
|
}
|
||||||
|
// create list of berths from selected port(s) or return all berths
|
||||||
|
if (berths.Count == 0)
|
||||||
|
berths = BreCalLists.AllBerths;
|
||||||
|
this.searchFilterControl.SetBerths(berths);
|
||||||
|
|
||||||
this.SearchFilterControl_SearchFilterChanged();
|
this.SearchFilterControl_SearchFilterChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
private async void comboBoxSortOrder_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e)
|
private async void comboBoxSortOrder_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e)
|
||||||
{
|
{
|
||||||
@ -417,16 +438,23 @@ namespace BreCalClient
|
|||||||
|
|
||||||
#region network operations
|
#region network operations
|
||||||
|
|
||||||
private async void LoadStaticLists()
|
private async Task<bool> LoadStaticLists()
|
||||||
{
|
{
|
||||||
if (_loginResult == null) return;
|
if (_loginResult == null) return false;
|
||||||
|
|
||||||
BreCalLists.InitializePorts(await _staticApi.GetPortsAsync());
|
BreCalLists.InitializePorts(await _staticApi.GetPortsAsync());
|
||||||
BreCalLists.InitializeBerths(await _staticApi.BerthsGetAsync());
|
BreCalLists.InitializeBerths(await _staticApi.BerthsGetAsync());
|
||||||
BreCalLists.InitializeShips(await _shipApi.ShipsGetAsync());
|
BreCalLists.InitializeShips(await _shipApi.ShipsGetAsync());
|
||||||
BreCalLists.InitializeParticipants(await _staticApi.ParticipantsGetAsync());
|
BreCalLists.InitializeParticipants(await _staticApi.ParticipantsGetAsync());
|
||||||
|
|
||||||
this.searchFilterControl.SetBerths(BreCalLists.Berths);
|
if(BreCalLists.Participants.Count == 0)
|
||||||
|
{
|
||||||
|
MessageBox.Show(BreCalClient.Resources.Resources.textNoPortAssigned, BreCalClient.Resources.Resources.textError, MessageBoxButton.OK, MessageBoxImage.Error);
|
||||||
|
Mouse.OverrideCursor = Cursors.Wait;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.searchFilterControl.SetBerths(BreCalLists.Berths);
|
||||||
|
|
||||||
foreach (Participant participant in BreCalLists.Participants)
|
foreach (Participant participant in BreCalLists.Participants)
|
||||||
{
|
{
|
||||||
@ -461,8 +489,8 @@ namespace BreCalClient
|
|||||||
SearchFilterModel.filterMap[_loginResult.Id] = currentFilter;
|
SearchFilterModel.filterMap[_loginResult.Id] = currentFilter;
|
||||||
}
|
}
|
||||||
this.searchFilterControl.SetFilterFromModel(currentFilter);
|
this.searchFilterControl.SetFilterFromModel(currentFilter);
|
||||||
|
|
||||||
if (currentFilter.Ports != null)
|
if ((currentFilter.Ports != null) && (this.comboBoxPorts.ItemsSource != null))
|
||||||
{
|
{
|
||||||
foreach (Port p in this.comboBoxPorts.ItemsSource)
|
foreach (Port p in this.comboBoxPorts.ItemsSource)
|
||||||
{
|
{
|
||||||
@ -474,13 +502,14 @@ namespace BreCalClient
|
|||||||
_ = Task.Run(() => RefreshShipcalls());
|
_ = Task.Run(() => RefreshShipcalls());
|
||||||
_ = Task.Run(() => RefreshShips());
|
_ = Task.Run(() => RefreshShips());
|
||||||
|
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public async Task RefreshShips()
|
public async Task RefreshShips()
|
||||||
{
|
{
|
||||||
while (true)
|
while (true)
|
||||||
{
|
{
|
||||||
Thread.Sleep(SHIPS_UPDATE_INTERVAL_SECONDS * 1000);
|
Thread.Sleep(SHIPS_UPDATE_INTERVAL_SECONDS * 1000);
|
||||||
BreCalLists.InitializeShips(await _shipApi.ShipsGetAsync());
|
BreCalLists.InitializeShips(await _shipApi.ShipsGetAsync());
|
||||||
}
|
}
|
||||||
@ -695,7 +724,7 @@ namespace BreCalClient
|
|||||||
// first add everything
|
// first add everything
|
||||||
this._visibleControlModels.AddRange(_allShipcallsDict.Values);
|
this._visibleControlModels.AddRange(_allShipcallsDict.Values);
|
||||||
|
|
||||||
// now remove elements whose filter criteria are met
|
// now remove elements whose filter criteria are met
|
||||||
|
|
||||||
if(sfm.Berths.Count > 0 )
|
if(sfm.Berths.Count > 0 )
|
||||||
{
|
{
|
||||||
@ -1111,24 +1140,24 @@ namespace BreCalClient
|
|||||||
if (msg.error_field != null)
|
if (msg.error_field != null)
|
||||||
{
|
{
|
||||||
caption = $"{caption}: {msg.error_field}";
|
caption = $"{caption}: {msg.error_field}";
|
||||||
}
|
}
|
||||||
|
|
||||||
if(msg.error_description != null)
|
if(msg.error_description != null)
|
||||||
{
|
{
|
||||||
message = msg.error_description;
|
message = msg.error_description;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (Exception) { }
|
catch (Exception) { }
|
||||||
}
|
}
|
||||||
|
|
||||||
_log.ErrorFormat("{0} - {1}", caption, message);
|
_log.ErrorFormat("{0} - {1}", caption, message);
|
||||||
|
|
||||||
Dispatcher.Invoke(new Action(() =>
|
Dispatcher.Invoke(new Action(() =>
|
||||||
{
|
{
|
||||||
MessageBox.Show(message, caption, MessageBoxButton.OK, MessageBoxImage.Error);
|
MessageBox.Show(message, caption, MessageBoxButton.OK, MessageBoxImage.Error);
|
||||||
}));
|
}));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void EnableControlsForParticipant()
|
private void EnableControlsForParticipant()
|
||||||
@ -1146,6 +1175,6 @@ namespace BreCalClient
|
|||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -4,8 +4,8 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
|
|||||||
-->
|
-->
|
||||||
<Project>
|
<Project>
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<ApplicationRevision>0</ApplicationRevision>
|
<ApplicationRevision>8</ApplicationRevision>
|
||||||
<ApplicationVersion>6.0</ApplicationVersion>
|
<ApplicationVersion>1.6.1.0</ApplicationVersion>
|
||||||
<BootstrapperEnabled>False</BootstrapperEnabled>
|
<BootstrapperEnabled>False</BootstrapperEnabled>
|
||||||
<Configuration>Release</Configuration>
|
<Configuration>Release</Configuration>
|
||||||
<CreateWebPageOnPublish>True</CreateWebPageOnPublish>
|
<CreateWebPageOnPublish>True</CreateWebPageOnPublish>
|
||||||
@ -30,7 +30,7 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
|
|||||||
<TargetFramework>net6.0-windows</TargetFramework>
|
<TargetFramework>net6.0-windows</TargetFramework>
|
||||||
<UpdateEnabled>True</UpdateEnabled>
|
<UpdateEnabled>True</UpdateEnabled>
|
||||||
<UpdateMode>Foreground</UpdateMode>
|
<UpdateMode>Foreground</UpdateMode>
|
||||||
<UpdateRequired>False</UpdateRequired>
|
<UpdateRequired>True</UpdateRequired>
|
||||||
<WebPageFileName>Publish.html</WebPageFileName>
|
<WebPageFileName>Publish.html</WebPageFileName>
|
||||||
<CreateDesktopShortcut>True</CreateDesktopShortcut>
|
<CreateDesktopShortcut>True</CreateDesktopShortcut>
|
||||||
<ErrorReportUrl>https://www.bsmd-emswe.eu/</ErrorReportUrl>
|
<ErrorReportUrl>https://www.bsmd-emswe.eu/</ErrorReportUrl>
|
||||||
@ -40,6 +40,7 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
|
|||||||
<SupportUrl>https://www.bsmd-emswe.eu/</SupportUrl>
|
<SupportUrl>https://www.bsmd-emswe.eu/</SupportUrl>
|
||||||
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
|
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
|
||||||
<SkipPublishVerification>false</SkipPublishVerification>
|
<SkipPublishVerification>false</SkipPublishVerification>
|
||||||
|
<MinimumRequiredVersion>1.6.1.0</MinimumRequiredVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PublishFile Include="containership.ico">
|
<PublishFile Include="containership.ico">
|
||||||
|
|||||||
@ -4,8 +4,8 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
|
|||||||
-->
|
-->
|
||||||
<Project>
|
<Project>
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<ApplicationRevision>0</ApplicationRevision>
|
<ApplicationRevision>6</ApplicationRevision>
|
||||||
<ApplicationVersion>1.6.0.3</ApplicationVersion>
|
<ApplicationVersion>1.6.0.8</ApplicationVersion>
|
||||||
<BootstrapperEnabled>True</BootstrapperEnabled>
|
<BootstrapperEnabled>True</BootstrapperEnabled>
|
||||||
<Configuration>Debug</Configuration>
|
<Configuration>Debug</Configuration>
|
||||||
<CreateDesktopShortcut>True</CreateDesktopShortcut>
|
<CreateDesktopShortcut>True</CreateDesktopShortcut>
|
||||||
@ -30,7 +30,7 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
|
|||||||
<TargetFramework>net6.0-windows</TargetFramework>
|
<TargetFramework>net6.0-windows</TargetFramework>
|
||||||
<UpdateEnabled>True</UpdateEnabled>
|
<UpdateEnabled>True</UpdateEnabled>
|
||||||
<UpdateMode>Foreground</UpdateMode>
|
<UpdateMode>Foreground</UpdateMode>
|
||||||
<UpdateRequired>False</UpdateRequired>
|
<UpdateRequired>True</UpdateRequired>
|
||||||
<WebPageFileName>Publish.html</WebPageFileName>
|
<WebPageFileName>Publish.html</WebPageFileName>
|
||||||
<CreateDesktopShortcut>True</CreateDesktopShortcut>
|
<CreateDesktopShortcut>True</CreateDesktopShortcut>
|
||||||
<ErrorReportUrl>https://www.bsmd-emswe.eu/</ErrorReportUrl>
|
<ErrorReportUrl>https://www.bsmd-emswe.eu/</ErrorReportUrl>
|
||||||
@ -40,6 +40,8 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
|
|||||||
<SupportUrl>http://www.textbausteine.net/</SupportUrl>
|
<SupportUrl>http://www.textbausteine.net/</SupportUrl>
|
||||||
<PublishDir>bin\Debug\net6.0-windows\win-x64\app.publish\</PublishDir>
|
<PublishDir>bin\Debug\net6.0-windows\win-x64\app.publish\</PublishDir>
|
||||||
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
|
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
|
||||||
|
<SkipPublishVerification>false</SkipPublishVerification>
|
||||||
|
<MinimumRequiredVersion>1.6.0.8</MinimumRequiredVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PublishFile Include="containership.ico">
|
<PublishFile Include="containership.ico">
|
||||||
|
|||||||
50
src/BreCalClient/Properties/Settings.Designer.cs
generated
50
src/BreCalClient/Properties/Settings.Designer.cs
generated
@ -9,38 +9,38 @@
|
|||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
namespace BreCalClient.Properties {
|
namespace BreCalClient.Properties {
|
||||||
|
|
||||||
|
|
||||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.10.0.0")]
|
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.10.0.0")]
|
||||||
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
|
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
|
||||||
|
|
||||||
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
|
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
|
||||||
|
|
||||||
public static Settings Default {
|
public static Settings Default {
|
||||||
get {
|
get {
|
||||||
return defaultInstance;
|
return defaultInstance;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[global::System.Configuration.ApplicationScopedSettingAttribute()]
|
[global::System.Configuration.ApplicationScopedSettingAttribute()]
|
||||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||||
[global::System.Configuration.DefaultSettingValueAttribute("#1D751F")]
|
[global::System.Configuration.DefaultSettingValueAttribute("#203864")]
|
||||||
public string BG_COLOR {
|
public string BG_COLOR {
|
||||||
get {
|
get {
|
||||||
return ((string)(this["BG_COLOR"]));
|
return ((string)(this["BG_COLOR"]));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[global::System.Configuration.ApplicationScopedSettingAttribute()]
|
[global::System.Configuration.ApplicationScopedSettingAttribute()]
|
||||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||||
[global::System.Configuration.DefaultSettingValueAttribute("!!Bremen calling Testversion!!")]
|
[global::System.Configuration.DefaultSettingValueAttribute("Bremen calling")]
|
||||||
public string APP_TITLE {
|
public string APP_TITLE {
|
||||||
get {
|
get {
|
||||||
return ((string)(this["APP_TITLE"]));
|
return ((string)(this["APP_TITLE"]));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[global::System.Configuration.ApplicationScopedSettingAttribute()]
|
[global::System.Configuration.ApplicationScopedSettingAttribute()]
|
||||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||||
[global::System.Configuration.DefaultSettingValueAttribute("https://www.textbausteine.net/")]
|
[global::System.Configuration.DefaultSettingValueAttribute("https://www.textbausteine.net/")]
|
||||||
@ -49,7 +49,7 @@ namespace BreCalClient.Properties {
|
|||||||
return ((string)(this["LOGO_IMAGE_URL"]));
|
return ((string)(this["LOGO_IMAGE_URL"]));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||||
[global::System.Configuration.DefaultSettingValueAttribute("")]
|
[global::System.Configuration.DefaultSettingValueAttribute("")]
|
||||||
@ -61,16 +61,16 @@ namespace BreCalClient.Properties {
|
|||||||
this["FilterCriteria"] = value;
|
this["FilterCriteria"] = value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[global::System.Configuration.ApplicationScopedSettingAttribute()]
|
[global::System.Configuration.ApplicationScopedSettingAttribute()]
|
||||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||||
[global::System.Configuration.DefaultSettingValueAttribute("https://brecaldevel.bsmd-emswe.eu")]
|
[global::System.Configuration.DefaultSettingValueAttribute("https://brecal.bsmd-emswe.eu")]
|
||||||
public string API_URL {
|
public string API_URL {
|
||||||
get {
|
get {
|
||||||
return ((string)(this["API_URL"]));
|
return ((string)(this["API_URL"]));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||||
[global::System.Configuration.DefaultSettingValueAttribute("800")]
|
[global::System.Configuration.DefaultSettingValueAttribute("800")]
|
||||||
@ -82,7 +82,7 @@ namespace BreCalClient.Properties {
|
|||||||
this["Width"] = value;
|
this["Width"] = value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||||
[global::System.Configuration.DefaultSettingValueAttribute("450")]
|
[global::System.Configuration.DefaultSettingValueAttribute("450")]
|
||||||
@ -94,7 +94,7 @@ namespace BreCalClient.Properties {
|
|||||||
this["Height"] = value;
|
this["Height"] = value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||||
[global::System.Configuration.DefaultSettingValueAttribute("0")]
|
[global::System.Configuration.DefaultSettingValueAttribute("0")]
|
||||||
@ -106,7 +106,7 @@ namespace BreCalClient.Properties {
|
|||||||
this["Left"] = value;
|
this["Left"] = value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||||
[global::System.Configuration.DefaultSettingValueAttribute("0")]
|
[global::System.Configuration.DefaultSettingValueAttribute("0")]
|
||||||
@ -118,7 +118,7 @@ namespace BreCalClient.Properties {
|
|||||||
this["Top"] = value;
|
this["Top"] = value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||||
[global::System.Configuration.DefaultSettingValueAttribute("0")]
|
[global::System.Configuration.DefaultSettingValueAttribute("0")]
|
||||||
@ -130,7 +130,7 @@ namespace BreCalClient.Properties {
|
|||||||
this["W1Left"] = value;
|
this["W1Left"] = value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||||
[global::System.Configuration.DefaultSettingValueAttribute("0")]
|
[global::System.Configuration.DefaultSettingValueAttribute("0")]
|
||||||
@ -142,7 +142,7 @@ namespace BreCalClient.Properties {
|
|||||||
this["W1Top"] = value;
|
this["W1Top"] = value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||||
[global::System.Configuration.DefaultSettingValueAttribute("0")]
|
[global::System.Configuration.DefaultSettingValueAttribute("0")]
|
||||||
@ -154,7 +154,7 @@ namespace BreCalClient.Properties {
|
|||||||
this["W2Left"] = value;
|
this["W2Left"] = value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||||
[global::System.Configuration.DefaultSettingValueAttribute("0")]
|
[global::System.Configuration.DefaultSettingValueAttribute("0")]
|
||||||
@ -166,7 +166,7 @@ namespace BreCalClient.Properties {
|
|||||||
this["W2Top"] = value;
|
this["W2Top"] = value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||||
[global::System.Configuration.DefaultSettingValueAttribute("0")]
|
[global::System.Configuration.DefaultSettingValueAttribute("0")]
|
||||||
@ -178,7 +178,7 @@ namespace BreCalClient.Properties {
|
|||||||
this["W3Left"] = value;
|
this["W3Left"] = value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||||
[global::System.Configuration.DefaultSettingValueAttribute("0")]
|
[global::System.Configuration.DefaultSettingValueAttribute("0")]
|
||||||
@ -190,7 +190,7 @@ namespace BreCalClient.Properties {
|
|||||||
this["W3Top"] = value;
|
this["W3Top"] = value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||||
[global::System.Configuration.DefaultSettingValueAttribute("0")]
|
[global::System.Configuration.DefaultSettingValueAttribute("0")]
|
||||||
@ -202,7 +202,7 @@ namespace BreCalClient.Properties {
|
|||||||
this["W4Left"] = value;
|
this["W4Left"] = value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||||
[global::System.Configuration.DefaultSettingValueAttribute("0")]
|
[global::System.Configuration.DefaultSettingValueAttribute("0")]
|
||||||
@ -214,7 +214,7 @@ namespace BreCalClient.Properties {
|
|||||||
this["W4Top"] = value;
|
this["W4Top"] = value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||||
[global::System.Configuration.DefaultSettingValueAttribute("")]
|
[global::System.Configuration.DefaultSettingValueAttribute("")]
|
||||||
|
|||||||
@ -3,10 +3,10 @@
|
|||||||
<Profiles />
|
<Profiles />
|
||||||
<Settings>
|
<Settings>
|
||||||
<Setting Name="BG_COLOR" Type="System.String" Scope="Application">
|
<Setting Name="BG_COLOR" Type="System.String" Scope="Application">
|
||||||
<Value Profile="(Default)">#1D751F</Value>
|
<Value Profile="(Default)">#203864</Value>
|
||||||
</Setting>
|
</Setting>
|
||||||
<Setting Name="APP_TITLE" Type="System.String" Scope="Application">
|
<Setting Name="APP_TITLE" Type="System.String" Scope="Application">
|
||||||
<Value Profile="(Default)">!!Bremen calling Testversion!!</Value>
|
<Value Profile="(Default)">Bremen calling</Value>
|
||||||
</Setting>
|
</Setting>
|
||||||
<Setting Name="LOGO_IMAGE_URL" Type="System.String" Scope="Application">
|
<Setting Name="LOGO_IMAGE_URL" Type="System.String" Scope="Application">
|
||||||
<Value Profile="(Default)">https://www.textbausteine.net/</Value>
|
<Value Profile="(Default)">https://www.textbausteine.net/</Value>
|
||||||
@ -15,7 +15,7 @@
|
|||||||
<Value Profile="(Default)" />
|
<Value Profile="(Default)" />
|
||||||
</Setting>
|
</Setting>
|
||||||
<Setting Name="API_URL" Type="System.String" Scope="Application">
|
<Setting Name="API_URL" Type="System.String" Scope="Application">
|
||||||
<Value Profile="(Default)">https://brecaldevel.bsmd-emswe.eu</Value>
|
<Value Profile="(Default)">https://brecal.bsmd-emswe.eu</Value>
|
||||||
</Setting>
|
</Setting>
|
||||||
<Setting Name="Width" Type="System.Double" Scope="User">
|
<Setting Name="Width" Type="System.Double" Scope="User">
|
||||||
<Value Profile="(Default)">800</Value>
|
<Value Profile="(Default)">800</Value>
|
||||||
|
|||||||
27
src/BreCalClient/Resources/Resources.Designer.cs
generated
27
src/BreCalClient/Resources/Resources.Designer.cs
generated
@ -596,6 +596,15 @@ namespace BreCalClient.Resources {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Draft.
|
||||||
|
/// </summary>
|
||||||
|
public static string textDraftNoUnit {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("textDraftNoUnit", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized string similar to Edit.
|
/// Looks up a localized string similar to Edit.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -875,6 +884,15 @@ namespace BreCalClient.Resources {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to No port assigned to this participant.
|
||||||
|
/// </summary>
|
||||||
|
public static string textNoPortAssigned {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("textNoPortAssigned", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized string similar to Not rotated.
|
/// Looks up a localized string similar to Not rotated.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -1055,6 +1073,15 @@ namespace BreCalClient.Resources {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Position.
|
||||||
|
/// </summary>
|
||||||
|
public static string textPosition {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("textPosition", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized string similar to Rain sensitive cargo.
|
/// Looks up a localized string similar to Rain sensitive cargo.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@ -1,17 +1,17 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<root>
|
<root>
|
||||||
<!--
|
<!--
|
||||||
Microsoft ResX Schema
|
Microsoft ResX Schema
|
||||||
|
|
||||||
Version 2.0
|
Version 2.0
|
||||||
|
|
||||||
The primary goals of this format is to allow a simple XML format
|
The primary goals of this format is to allow a simple XML format
|
||||||
that is mostly human readable. The generation and parsing of the
|
that is mostly human readable. The generation and parsing of the
|
||||||
various data types are done through the TypeConverter classes
|
various data types are done through the TypeConverter classes
|
||||||
associated with the data types.
|
associated with the data types.
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
|
|
||||||
... ado.net/XML headers & schema ...
|
... ado.net/XML headers & schema ...
|
||||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
<resheader name="version">2.0</resheader>
|
<resheader name="version">2.0</resheader>
|
||||||
@ -26,36 +26,36 @@
|
|||||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
<comment>This is a comment</comment>
|
<comment>This is a comment</comment>
|
||||||
</data>
|
</data>
|
||||||
|
|
||||||
There are any number of "resheader" rows that contain simple
|
There are any number of "resheader" rows that contain simple
|
||||||
name/value pairs.
|
name/value pairs.
|
||||||
|
|
||||||
Each data row contains a name, and value. The row also contains a
|
Each data row contains a name, and value. The row also contains a
|
||||||
type or mimetype. Type corresponds to a .NET class that support
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
text/value conversion through the TypeConverter architecture.
|
text/value conversion through the TypeConverter architecture.
|
||||||
Classes that don't support this are serialized and stored with the
|
Classes that don't support this are serialized and stored with the
|
||||||
mimetype set.
|
mimetype set.
|
||||||
|
|
||||||
The mimetype is used for serialized objects, and tells the
|
The mimetype is used for serialized objects, and tells the
|
||||||
ResXResourceReader how to depersist the object. This is currently not
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
extensible. For a given mimetype the value must be set accordingly:
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
that the ResXResourceWriter will generate, however the reader can
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
read any of the formats listed below.
|
read any of the formats listed below.
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.binary.base64
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
value : The object must be serialized with
|
value : The object must be serialized with
|
||||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
: and then encoded with base64 encoding.
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.soap.base64
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
value : The object must be serialized with
|
value : The object must be serialized with
|
||||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
: and then encoded with base64 encoding.
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
value : The object must be serialized into a byte array
|
value : The object must be serialized into a byte array
|
||||||
: using a System.ComponentModel.TypeConverter
|
: using a System.ComponentModel.TypeConverter
|
||||||
: and then encoded with base64 encoding.
|
: and then encoded with base64 encoding.
|
||||||
-->
|
-->
|
||||||
@ -235,6 +235,9 @@
|
|||||||
<data name="textDraft" xml:space="preserve">
|
<data name="textDraft" xml:space="preserve">
|
||||||
<value>Tiefgang (m)</value>
|
<value>Tiefgang (m)</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="textDraftNoUnit" xml:space="preserve">
|
||||||
|
<value>Tiefgang</value>
|
||||||
|
</data>
|
||||||
<data name="textEdit" xml:space="preserve">
|
<data name="textEdit" xml:space="preserve">
|
||||||
<value>Bearbeiten</value>
|
<value>Bearbeiten</value>
|
||||||
</data>
|
</data>
|
||||||
@ -286,6 +289,9 @@
|
|||||||
<data name="textFrom" xml:space="preserve">
|
<data name="textFrom" xml:space="preserve">
|
||||||
<value>von</value>
|
<value>von</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="textHarbour" xml:space="preserve">
|
||||||
|
<value>Hafen</value>
|
||||||
|
</data>
|
||||||
<data name="textIncoming" xml:space="preserve">
|
<data name="textIncoming" xml:space="preserve">
|
||||||
<value>Einkommend</value>
|
<value>Einkommend</value>
|
||||||
</data>
|
</data>
|
||||||
@ -547,55 +553,10 @@
|
|||||||
<data name="arrow_up_green" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="arrow_up_green" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>arrow_up_green.png;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>arrow_up_green.png;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="textShiftingSequence" xml:space="preserve">
|
|
||||||
<value>Verhol. Nr.</value>
|
|
||||||
</data>
|
|
||||||
<data name="textClearAll" xml:space="preserve">
|
|
||||||
<value>Alle Eintragungen zurücksetzen?</value>
|
|
||||||
</data>
|
|
||||||
<data name="textBothTideTimesNecessary" xml:space="preserve">
|
|
||||||
<value>Beide Tidenzeiten sollten angegeben werden (von - bis)</value>
|
|
||||||
</data>
|
|
||||||
<data name="textEndValueBeforeStartValue" xml:space="preserve">
|
|
||||||
<value>Endzeit liegt vor Startzeit</value>
|
|
||||||
</data>
|
|
||||||
<data name="textError" xml:space="preserve">
|
|
||||||
<value>Error</value>
|
|
||||||
</data>
|
|
||||||
<data name="textETAInThePast" xml:space="preserve">
|
|
||||||
<value>Zeitpunkt ETA liegt in der Vergangenheit</value>
|
|
||||||
</data>
|
|
||||||
<data name="textETDInThePast" xml:space="preserve">
|
|
||||||
<value>Zeitpunkt ETD liegt in der Vergangenheit</value>
|
|
||||||
</data>
|
|
||||||
<data name="textLockTimeInThePast" xml:space="preserve">
|
|
||||||
<value>Schleusenzeit liegt in der Vergangenheit</value>
|
|
||||||
</data>
|
|
||||||
<data name="textOperationEndInThePast" xml:space="preserve">
|
|
||||||
<value>Operation Endzeit liegt in der Vergangenheit</value>
|
|
||||||
</data>
|
|
||||||
<data name="textOperationStartInThePast" xml:space="preserve">
|
|
||||||
<value>Operation Startzeit liegt in der Vergangenheit</value>
|
|
||||||
</data>
|
|
||||||
<data name="textTideTimesInThePast" xml:space="preserve">
|
|
||||||
<value>Tidenzeit liegt in der Vergangenheit</value>
|
|
||||||
</data>
|
|
||||||
<data name="textWarning" xml:space="preserve">
|
|
||||||
<value>Warnung</value>
|
|
||||||
</data>
|
|
||||||
<data name="textZoneEntryInThePast" xml:space="preserve">
|
|
||||||
<value>Zeit Reviereintritt liegt in der Vergangenheit</value>
|
|
||||||
</data>
|
|
||||||
<data name="textTidalBothValues" xml:space="preserve">
|
|
||||||
<value>Für das Tidenfenster müssen beide Zeiten angegeben werden</value>
|
|
||||||
</data>
|
|
||||||
<data name="textTooFarInTheFuture" xml:space="preserve">
|
|
||||||
<value>Eine Zeiteingabe ist zu weit in der Zukunft</value>
|
|
||||||
</data>
|
|
||||||
<data name="textStartTimeMissing" xml:space="preserve">
|
<data name="textStartTimeMissing" xml:space="preserve">
|
||||||
<value>Wenn eine Ende-Zeit angegeben wird, muss auch eine Start-Zeit angegeben werden</value>
|
<value>Wenn eine Ende-Zeit angegeben wird, muss auch eine Start-Zeit angegeben werden</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="textHarbour" xml:space="preserve">
|
<data name="textNoPortAssigned" xml:space="preserve">
|
||||||
<value>Hafen</value>
|
<value>Es ist keine Hafenzuordnung vorhanden</value>
|
||||||
</data>
|
</data>
|
||||||
</root>
|
</root>
|
||||||
@ -601,4 +601,13 @@
|
|||||||
<data name="textStartTimeMissing" xml:space="preserve">
|
<data name="textStartTimeMissing" xml:space="preserve">
|
||||||
<value>If an end time is set, a start time is also required</value>
|
<value>If an end time is set, a start time is also required</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="textNoPortAssigned" xml:space="preserve">
|
||||||
|
<value>No port assigned to this participant</value>
|
||||||
|
</data>
|
||||||
|
<data name="textPosition" xml:space="preserve">
|
||||||
|
<value>Position</value>
|
||||||
|
</data>
|
||||||
|
<data name="textDraftNoUnit" xml:space="preserve">
|
||||||
|
<value>Draft</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
||||||
@ -1,12 +1,12 @@
|
|||||||
<UserControl x:Class="BreCalClient.ShipcallControl"
|
<UserControl x:Class="BreCalClient.ShipcallControl"
|
||||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||||
xmlns:p = "clr-namespace:BreCalClient.Resources"
|
xmlns:p = "clr-namespace:BreCalClient.Resources"
|
||||||
xmlns:sets="clr-namespace:BreCalClient.Properties"
|
xmlns:sets="clr-namespace:BreCalClient.Properties"
|
||||||
xmlns:db="clr-namespace:BreCalClient;assembly=BreCalDevelClient"
|
xmlns:db="clr-namespace:BreCalClient;assembly=BreCalClient"
|
||||||
mc:Ignorable="d"
|
mc:Ignorable="d"
|
||||||
d:DesignHeight="135" d:DesignWidth="800">
|
d:DesignHeight="135" d:DesignWidth="800">
|
||||||
<Border BorderBrush="LightGray" Margin="1" BorderThickness="1">
|
<Border BorderBrush="LightGray" Margin="1" BorderThickness="1">
|
||||||
<Grid>
|
<Grid>
|
||||||
@ -29,7 +29,6 @@
|
|||||||
<RowDefinition Height=".125*"/>
|
<RowDefinition Height=".125*"/>
|
||||||
<RowDefinition Height=".125*"/>
|
<RowDefinition Height=".125*"/>
|
||||||
<RowDefinition Height=".125*"/>
|
<RowDefinition Height=".125*"/>
|
||||||
|
|
||||||
<RowDefinition Height=".125*"/>
|
<RowDefinition Height=".125*"/>
|
||||||
<RowDefinition Height=".125*"/>
|
<RowDefinition Height=".125*"/>
|
||||||
<RowDefinition Height=".125*"/>
|
<RowDefinition Height=".125*"/>
|
||||||
@ -49,7 +48,7 @@
|
|||||||
<Viewbox Grid.Column="1">
|
<Viewbox Grid.Column="1">
|
||||||
<TextBlock x:Name="textBlockShiftingSequence"></TextBlock>
|
<TextBlock x:Name="textBlockShiftingSequence"></TextBlock>
|
||||||
</Viewbox>
|
</Viewbox>
|
||||||
<Label Grid.Column="2" FontSize="12" x:Name="labelShipName" Foreground="White" Background="{Binding Source={x:Static sets:Settings.Default}, Path=BG_COLOR}" VerticalAlignment="Stretch"
|
<Label Grid.Column="2" FontSize="12" x:Name="labelShipName" Foreground="White" Background="{Binding Source={x:Static sets:Settings.Default}, Path=BG_COLOR}" VerticalAlignment="Stretch"
|
||||||
HorizontalAlignment="Stretch" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" PreviewMouseUp="Image_PreviewMouseUp">
|
HorizontalAlignment="Stretch" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" PreviewMouseUp="Image_PreviewMouseUp">
|
||||||
<TextBlock Name="textBlockShipName" />
|
<TextBlock Name="textBlockShipName" />
|
||||||
</Label>
|
</Label>
|
||||||
@ -64,17 +63,17 @@
|
|||||||
<TextBlock x:Name="textBlockIMO" Padding="0" FontWeight="DemiBold" />
|
<TextBlock x:Name="textBlockIMO" Padding="0" FontWeight="DemiBold" />
|
||||||
</Viewbox>
|
</Viewbox>
|
||||||
<Viewbox Grid.Row="2" Grid.Column="0" HorizontalAlignment="Left">
|
<Viewbox Grid.Row="2" Grid.Column="0" HorizontalAlignment="Left">
|
||||||
<TextBlock Text="{x:Static p:Resources.textCallsign}" />
|
|
||||||
</Viewbox>
|
|
||||||
<Viewbox Grid.Row="2" Grid.Column="1" HorizontalAlignment="Left">
|
|
||||||
<TextBlock x:Name="textBlockCallsign" Padding="0"/>
|
|
||||||
</Viewbox>
|
|
||||||
<Viewbox Grid.Row="3" Grid.Column="0" HorizontalAlignment="Left">
|
|
||||||
<TextBlock Text="{x:Static p:Resources.textLengthWidth}" Padding="0" />
|
<TextBlock Text="{x:Static p:Resources.textLengthWidth}" Padding="0" />
|
||||||
</Viewbox>
|
</Viewbox>
|
||||||
<Viewbox Grid.Row="3" Grid.Column="1" HorizontalAlignment="Left">
|
<Viewbox Grid.Row="2" Grid.Column="1" HorizontalAlignment="Left">
|
||||||
<TextBlock x:Name="textBlockLengthWidth" Padding="0"/>
|
<TextBlock x:Name="textBlockLengthWidth" Padding="0"/>
|
||||||
</Viewbox>
|
</Viewbox>
|
||||||
|
<Viewbox Grid.Row="3" Grid.Column="0" HorizontalAlignment="Left">
|
||||||
|
<TextBlock Text="{x:Static p:Resources.textDraftNoUnit}" />
|
||||||
|
</Viewbox>
|
||||||
|
<Viewbox Grid.Row="3" Grid.Column="1" HorizontalAlignment="Left">
|
||||||
|
<TextBlock x:Name="textBlockDraft" Padding="0"/>
|
||||||
|
</Viewbox>
|
||||||
<Viewbox Grid.Row="4" Grid.Column="0" HorizontalAlignment="Left">
|
<Viewbox Grid.Row="4" Grid.Column="0" HorizontalAlignment="Left">
|
||||||
<TextBlock Text="ETA" x:Name="labelETA"/>
|
<TextBlock Text="ETA" x:Name="labelETA"/>
|
||||||
</Viewbox>
|
</Viewbox>
|
||||||
@ -90,14 +89,13 @@
|
|||||||
<Viewbox Grid.Row="6" Grid.Column="0" Grid.ColumnSpan="2" HorizontalAlignment="Left">
|
<Viewbox Grid.Row="6" Grid.Column="0" Grid.ColumnSpan="2" HorizontalAlignment="Left">
|
||||||
<TextBlock x:Name="textBlockHarbour" Padding="0" FontWeight="DemiBold" />
|
<TextBlock x:Name="textBlockHarbour" Padding="0" FontWeight="DemiBold" />
|
||||||
</Viewbox>
|
</Viewbox>
|
||||||
|
|
||||||
</Grid>
|
</Grid>
|
||||||
<Grid Grid.Row="0" Grid.Column="1">
|
<Grid Grid.Row="0" Grid.Column="1">
|
||||||
<Grid.RowDefinitions>
|
<Grid.RowDefinitions>
|
||||||
<RowDefinition Height="*" />
|
<RowDefinition Height="*" />
|
||||||
<RowDefinition Height="14" />
|
<RowDefinition Height="14" />
|
||||||
</Grid.RowDefinitions>
|
</Grid.RowDefinitions>
|
||||||
<Label Padding="0" Grid.Row="0" Grid.Column="0" Grid.RowSpan="1" FontSize="13" Content="- / -" Foreground="White" Background="{Binding Source={x:Static sets:Settings.Default}, Path=BG_COLOR}" VerticalAlignment="Stretch"
|
<Label Padding="0" Grid.Row="0" Grid.Column="0" Grid.RowSpan="1" FontSize="13" Content="- / -" Foreground="White" Background="{Binding Source={x:Static sets:Settings.Default}, Path=BG_COLOR}" VerticalAlignment="Stretch"
|
||||||
HorizontalAlignment="Stretch" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" Name="labelAgent" PreviewMouseUp="labelAgent_PreviewMouseUp"/>
|
HorizontalAlignment="Stretch" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" Name="labelAgent" PreviewMouseUp="labelAgent_PreviewMouseUp"/>
|
||||||
<Label Name="labelLastChangeAgency" FontSize="9" Padding="0" VerticalContentAlignment="Center" Grid.Row="1" Foreground="WhiteSmoke" Background="{Binding Source={x:Static sets:Settings.Default}, Path=BG_COLOR}" HorizontalContentAlignment="Center" />
|
<Label Name="labelLastChangeAgency" FontSize="9" Padding="0" VerticalContentAlignment="Center" Grid.Row="1" Foreground="WhiteSmoke" Background="{Binding Source={x:Static sets:Settings.Default}, Path=BG_COLOR}" HorizontalContentAlignment="Center" />
|
||||||
</Grid>
|
</Grid>
|
||||||
@ -106,7 +104,7 @@
|
|||||||
<RowDefinition Height="*" />
|
<RowDefinition Height="*" />
|
||||||
<RowDefinition Height="14" />
|
<RowDefinition Height="14" />
|
||||||
</Grid.RowDefinitions>
|
</Grid.RowDefinitions>
|
||||||
<Label Padding="0" Grid.Row="0" Grid.Column="0" Grid.RowSpan="1" FontSize="13" Content="- / -" Foreground="White" Background="{Binding Source={x:Static sets:Settings.Default}, Path=BG_COLOR}" VerticalAlignment="Stretch"
|
<Label Padding="0" Grid.Row="0" Grid.Column="0" Grid.RowSpan="1" FontSize="13" Content="- / -" Foreground="White" Background="{Binding Source={x:Static sets:Settings.Default}, Path=BG_COLOR}" VerticalAlignment="Stretch"
|
||||||
HorizontalAlignment="Stretch" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" Name="labelMooring" PreviewMouseUp="labelMooring_PreviewMouseUp"/>
|
HorizontalAlignment="Stretch" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" Name="labelMooring" PreviewMouseUp="labelMooring_PreviewMouseUp"/>
|
||||||
<Label Name="labelLastChangeMooring" FontSize="9" Padding="0" VerticalContentAlignment="Center" Grid.Row="1" Foreground="WhiteSmoke" Background="{Binding Source={x:Static sets:Settings.Default}, Path=BG_COLOR}" HorizontalContentAlignment="Center" />
|
<Label Name="labelLastChangeMooring" FontSize="9" Padding="0" VerticalContentAlignment="Center" Grid.Row="1" Foreground="WhiteSmoke" Background="{Binding Source={x:Static sets:Settings.Default}, Path=BG_COLOR}" HorizontalContentAlignment="Center" />
|
||||||
</Grid>
|
</Grid>
|
||||||
@ -115,7 +113,7 @@
|
|||||||
<RowDefinition Height="*" />
|
<RowDefinition Height="*" />
|
||||||
<RowDefinition Height="14" />
|
<RowDefinition Height="14" />
|
||||||
</Grid.RowDefinitions>
|
</Grid.RowDefinitions>
|
||||||
<Label Padding="0" Grid.Row="0" Grid.Column="0" Grid.RowSpan="1" FontSize="13" Content="- / -" Foreground="White" Background="{Binding Source={x:Static sets:Settings.Default}, Path=BG_COLOR}" VerticalAlignment="Stretch"
|
<Label Padding="0" Grid.Row="0" Grid.Column="0" Grid.RowSpan="1" FontSize="13" Content="- / -" Foreground="White" Background="{Binding Source={x:Static sets:Settings.Default}, Path=BG_COLOR}" VerticalAlignment="Stretch"
|
||||||
HorizontalAlignment="Stretch" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" Name="labelPortAuthority" PreviewMouseUp="labelPortAuthority_PreviewMouseUp"/>
|
HorizontalAlignment="Stretch" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" Name="labelPortAuthority" PreviewMouseUp="labelPortAuthority_PreviewMouseUp"/>
|
||||||
<Label Name="labelLastChangePortAuthority" FontSize="9" Padding="0" VerticalContentAlignment="Center" Grid.Row="1" Foreground="WhiteSmoke" Background="{Binding Source={x:Static sets:Settings.Default}, Path=BG_COLOR}" HorizontalContentAlignment="Center" />
|
<Label Name="labelLastChangePortAuthority" FontSize="9" Padding="0" VerticalContentAlignment="Center" Grid.Row="1" Foreground="WhiteSmoke" Background="{Binding Source={x:Static sets:Settings.Default}, Path=BG_COLOR}" HorizontalContentAlignment="Center" />
|
||||||
</Grid>
|
</Grid>
|
||||||
@ -124,7 +122,7 @@
|
|||||||
<RowDefinition Height="*" />
|
<RowDefinition Height="*" />
|
||||||
<RowDefinition Height="14" />
|
<RowDefinition Height="14" />
|
||||||
</Grid.RowDefinitions>
|
</Grid.RowDefinitions>
|
||||||
<Label Padding="0" Grid.Row="0" Grid.Column="0" Grid.RowSpan="1" FontSize="13" Content="- / -" Foreground="White" Background="{Binding Source={x:Static sets:Settings.Default}, Path=BG_COLOR}" VerticalAlignment="Stretch"
|
<Label Padding="0" Grid.Row="0" Grid.Column="0" Grid.RowSpan="1" FontSize="13" Content="- / -" Foreground="White" Background="{Binding Source={x:Static sets:Settings.Default}, Path=BG_COLOR}" VerticalAlignment="Stretch"
|
||||||
HorizontalAlignment="Stretch" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" Name="labelPilot" PreviewMouseUp="labelPilot_PreviewMouseUp"/>
|
HorizontalAlignment="Stretch" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" Name="labelPilot" PreviewMouseUp="labelPilot_PreviewMouseUp"/>
|
||||||
<Label Name="labelLastChangePilot" FontSize="9" Padding="0" VerticalContentAlignment="Center" Grid.Row="1" Foreground="WhiteSmoke" Background="{Binding Source={x:Static sets:Settings.Default}, Path=BG_COLOR}" HorizontalContentAlignment="Center" />
|
<Label Name="labelLastChangePilot" FontSize="9" Padding="0" VerticalContentAlignment="Center" Grid.Row="1" Foreground="WhiteSmoke" Background="{Binding Source={x:Static sets:Settings.Default}, Path=BG_COLOR}" HorizontalContentAlignment="Center" />
|
||||||
</Grid>
|
</Grid>
|
||||||
@ -133,7 +131,7 @@
|
|||||||
<RowDefinition Height="*" />
|
<RowDefinition Height="*" />
|
||||||
<RowDefinition Height="14" />
|
<RowDefinition Height="14" />
|
||||||
</Grid.RowDefinitions>
|
</Grid.RowDefinitions>
|
||||||
<Label Padding="0" Grid.Row="0" Grid.Column="0" Grid.RowSpan="1" FontSize="13" Content="- / -" Foreground="White" Background="{Binding Source={x:Static sets:Settings.Default}, Path=BG_COLOR}" VerticalAlignment="Stretch"
|
<Label Padding="0" Grid.Row="0" Grid.Column="0" Grid.RowSpan="1" FontSize="13" Content="- / -" Foreground="White" Background="{Binding Source={x:Static sets:Settings.Default}, Path=BG_COLOR}" VerticalAlignment="Stretch"
|
||||||
HorizontalAlignment="Stretch" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" Name="labelTug" PreviewMouseUp="labelTug_PreviewMouseUp"/>
|
HorizontalAlignment="Stretch" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" Name="labelTug" PreviewMouseUp="labelTug_PreviewMouseUp"/>
|
||||||
<Label Name="labelLastChangeTug" FontSize="9" Padding="0" VerticalContentAlignment="Center" Grid.Row="1" Foreground="WhiteSmoke" Background="{Binding Source={x:Static sets:Settings.Default}, Path=BG_COLOR}" HorizontalContentAlignment="Center" />
|
<Label Name="labelLastChangeTug" FontSize="9" Padding="0" VerticalContentAlignment="Center" Grid.Row="1" Foreground="WhiteSmoke" Background="{Binding Source={x:Static sets:Settings.Default}, Path=BG_COLOR}" HorizontalContentAlignment="Center" />
|
||||||
</Grid>
|
</Grid>
|
||||||
@ -142,11 +140,11 @@
|
|||||||
<RowDefinition Height="*" />
|
<RowDefinition Height="*" />
|
||||||
<RowDefinition Height="14" />
|
<RowDefinition Height="14" />
|
||||||
</Grid.RowDefinitions>
|
</Grid.RowDefinitions>
|
||||||
<Label Padding="0" Grid.Row="0" Grid.Column="0" Grid.RowSpan="1" FontSize="13" Content="- / -" Foreground="White" Background="{Binding Source={x:Static sets:Settings.Default}, Path=BG_COLOR}" VerticalAlignment="Stretch"
|
<Label Padding="0" Grid.Row="0" Grid.Column="0" Grid.RowSpan="1" FontSize="13" Content="- / -" Foreground="White" Background="{Binding Source={x:Static sets:Settings.Default}, Path=BG_COLOR}" VerticalAlignment="Stretch"
|
||||||
HorizontalAlignment="Stretch" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" Name="labelTerminal" PreviewMouseUp="labelTerminal_PreviewMouseUp"/>
|
HorizontalAlignment="Stretch" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" Name="labelTerminal" PreviewMouseUp="labelTerminal_PreviewMouseUp"/>
|
||||||
<Label Name="labelLastChangeTerminal" FontSize="9" Padding="0" VerticalContentAlignment="Center" Grid.Row="1" Foreground="WhiteSmoke" Background="{Binding Source={x:Static sets:Settings.Default}, Path=BG_COLOR}" HorizontalContentAlignment="Center" />
|
<Label Name="labelLastChangeTerminal" FontSize="9" Padding="0" VerticalContentAlignment="Center" Grid.Row="1" Foreground="WhiteSmoke" Background="{Binding Source={x:Static sets:Settings.Default}, Path=BG_COLOR}" HorizontalContentAlignment="Center" />
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
||||||
<!-- AGENCY -->
|
<!-- AGENCY -->
|
||||||
<Border Grid.Row="2" Grid.Column="1" BorderThickness="1, 0, 0, 0" BorderBrush="{Binding Source={x:Static sets:Settings.Default}, Path=BG_COLOR}" Padding="3,0,0,0">
|
<Border Grid.Row="2" Grid.Column="1" BorderThickness="1, 0, 0, 0" BorderBrush="{Binding Source={x:Static sets:Settings.Default}, Path=BG_COLOR}" Padding="3,0,0,0">
|
||||||
<Grid Grid.Row="2" Grid.Column="1">
|
<Grid Grid.Row="2" Grid.Column="1">
|
||||||
@ -160,16 +158,16 @@
|
|||||||
<RowDefinition Height="14" />
|
<RowDefinition Height="14" />
|
||||||
<RowDefinition Height=".5*" />
|
<RowDefinition Height=".5*" />
|
||||||
</Grid.RowDefinitions>
|
</Grid.RowDefinitions>
|
||||||
|
|
||||||
<Label Grid.Row="0" Grid.Column="0" Content = "ETA" x:Name="labelETAETDAgent" Padding="0" VerticalContentAlignment="Center" />
|
<Label Grid.Row="0" Grid.Column="0" Content = "ETA" x:Name="labelETAETDAgent" Padding="0" VerticalContentAlignment="Center" />
|
||||||
<Label Grid.Row="1" Grid.Column="0" Content="{x:Static p:Resources.textRemarks}" Padding="0" VerticalContentAlignment="Center" FontSize="9"/>
|
<Label Grid.Row="1" Grid.Column="0" Content="{x:Static p:Resources.textRemarks}" Padding="0" VerticalContentAlignment="Center" FontSize="9"/>
|
||||||
<Border Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="2" BorderThickness="0,1,0,0" BorderBrush="Gray" >
|
<Border Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="2" BorderThickness="0,1,0,0" BorderBrush="Gray" >
|
||||||
<Label Content="{x:Static p:Resources.textBerth}" Padding="0" VerticalContentAlignment="Center" FontSize="9"/>
|
<Label Content="{x:Static p:Resources.textBerth}" Padding="0" VerticalContentAlignment="Center" FontSize="9"/>
|
||||||
</Border>
|
</Border>
|
||||||
|
|
||||||
<Label Grid.Row="0" Grid.Column="1" Padding="0" VerticalContentAlignment="Center" x:Name="labelAgencyETAETDValue" FontWeight="DemiBold"/>
|
<Label Grid.Row="0" Grid.Column="1" Padding="0" VerticalContentAlignment="Center" x:Name="labelAgencyETAETDValue" FontWeight="DemiBold"/>
|
||||||
<TextBlock Grid.Row="1" Grid.Column="1" Grid.RowSpan="1" Padding="0" TextWrapping="Wrap" VerticalAlignment="Top" x:Name="textBlockAgencyRemarks" FontSize="10"/>
|
<TextBlock Grid.Row="1" Grid.Column="1" Grid.RowSpan="1" Padding="0" TextWrapping="Wrap" VerticalAlignment="Top" x:Name="textBlockAgencyRemarks" FontSize="10"/>
|
||||||
|
|
||||||
<Label Grid.Row="2" Grid.Column="1" HorizontalContentAlignment="Left" x:Name="labelAgencyBerth" Padding="0" VerticalContentAlignment="Center" FontSize="11" FontWeight="SemiBold" />
|
<Label Grid.Row="2" Grid.Column="1" HorizontalContentAlignment="Left" x:Name="labelAgencyBerth" Padding="0" VerticalContentAlignment="Center" FontSize="11" FontWeight="SemiBold" />
|
||||||
<TextBlock Grid.Row="3" Grid.Column="0" Text="{x:Static p:Resources.textRemarks}" Padding="0" VerticalAlignment="Top" TextWrapping="Wrap" FontSize="9"/>
|
<TextBlock Grid.Row="3" Grid.Column="0" Text="{x:Static p:Resources.textRemarks}" Padding="0" VerticalAlignment="Top" TextWrapping="Wrap" FontSize="9"/>
|
||||||
<TextBlock Grid.Row="3" Grid.Column="1" Grid.RowSpan="1" Padding="0" TextWrapping="Wrap" VerticalAlignment="Top" x:Name="textBlockAgencyBerthRemarks" FontSize="10"/>
|
<TextBlock Grid.Row="3" Grid.Column="1" Grid.RowSpan="1" Padding="0" TextWrapping="Wrap" VerticalAlignment="Top" x:Name="textBlockAgencyBerthRemarks" FontSize="10"/>
|
||||||
|
|||||||
@ -25,7 +25,7 @@ namespace BreCalClient
|
|||||||
Participant? _terminal;
|
Participant? _terminal;
|
||||||
Participant? _tug;
|
Participant? _tug;
|
||||||
Participant? _port_administration;
|
Participant? _port_administration;
|
||||||
private static readonly ILog _log = LogManager.GetLogger(typeof(ShipcallControl));
|
private static readonly ILog _log = LogManager.GetLogger(typeof(ShipcallControl));
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
@ -82,7 +82,7 @@ namespace BreCalClient
|
|||||||
this.labelAgencyBerth.Content = "";
|
this.labelAgencyBerth.Content = "";
|
||||||
this.labelAgencyETAETDValue.Content = "";
|
this.labelAgencyETAETDValue.Content = "";
|
||||||
this.textBlockAgencyRemarks.Text = "";
|
this.textBlockAgencyRemarks.Text = "";
|
||||||
this.textBlockAgencyBerthRemarks.Text = "";
|
this.textBlockAgencyBerthRemarks.Text = "";
|
||||||
}
|
}
|
||||||
|
|
||||||
_mooring = this.ShipcallControlModel?.GetParticipantForType(Extensions.ParticipantType.MOORING);
|
_mooring = this.ShipcallControlModel?.GetParticipantForType(Extensions.ParticipantType.MOORING);
|
||||||
@ -215,13 +215,13 @@ namespace BreCalClient
|
|||||||
switch (this.ShipcallControlModel?.Shipcall?.Type)
|
switch (this.ShipcallControlModel?.Shipcall?.Type)
|
||||||
{
|
{
|
||||||
case ShipcallType.Arrival: // incoming
|
case ShipcallType.Arrival: // incoming
|
||||||
this.imageShipcallType.Source = new BitmapImage(new Uri("pack://application:,,,/BreCalDevelClient;component/Resources/arrow_down_red.png"));
|
this.imageShipcallType.Source = new BitmapImage(new Uri("pack://application:,,,/BreCalClient;component/Resources/arrow_down_red.png"));
|
||||||
break;
|
break;
|
||||||
case ShipcallType.Departure: // outgoing
|
case ShipcallType.Departure: // outgoing
|
||||||
this.imageShipcallType.Source = new BitmapImage(new Uri("pack://application:,,,/BreCalDevelClient;component/Resources/arrow_up_blue.png"));
|
this.imageShipcallType.Source = new BitmapImage(new Uri("pack://application:,,,/BreCalClient;component/Resources/arrow_up_blue.png"));
|
||||||
break;
|
break;
|
||||||
case ShipcallType.Shifting: // shifting
|
case ShipcallType.Shifting: // shifting
|
||||||
this.imageShipcallType.Source = new BitmapImage(new Uri("pack://application:,,,/BreCalDevelClient;component/Resources/arrow_right_green.png"));
|
this.imageShipcallType.Source = new BitmapImage(new Uri("pack://application:,,,/BreCalClient;component/Resources/arrow_right_green.png"));
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
@ -230,13 +230,13 @@ namespace BreCalClient
|
|||||||
switch(this.ShipcallControlModel?.LightMode)
|
switch(this.ShipcallControlModel?.LightMode)
|
||||||
{
|
{
|
||||||
case EvaluationType.Green:
|
case EvaluationType.Green:
|
||||||
this.imageEvaluation.Source = new BitmapImage(new Uri("pack://application:,,,/BreCalDevelClient;component/Resources/check.png"));
|
this.imageEvaluation.Source = new BitmapImage(new Uri("pack://application:,,,/BreCalClient;component/Resources/check.png"));
|
||||||
break;
|
break;
|
||||||
case EvaluationType.Yellow:
|
case EvaluationType.Yellow:
|
||||||
this.imageEvaluation.Source = new BitmapImage(new Uri("pack://application:,,,/BreCalDevelClient;component/Resources/sign_warning.png"));
|
this.imageEvaluation.Source = new BitmapImage(new Uri("pack://application:,,,/BreCalClient;component/Resources/sign_warning.png"));
|
||||||
break;
|
break;
|
||||||
case EvaluationType.Red:
|
case EvaluationType.Red:
|
||||||
this.imageEvaluation.Source = new BitmapImage(new Uri("pack://application:,,,/BreCalDevelClient;component/Resources/delete2.png"));
|
this.imageEvaluation.Source = new BitmapImage(new Uri("pack://application:,,,/BreCalClient;component/Resources/delete2.png"));
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
@ -267,10 +267,10 @@ namespace BreCalClient
|
|||||||
this.imageEvaluation.ToolTip = this.ShipcallControlModel?.Shipcall?.EvaluationMessage;
|
this.imageEvaluation.ToolTip = this.ShipcallControlModel?.Shipcall?.EvaluationMessage;
|
||||||
else
|
else
|
||||||
this.imageEvaluation.ToolTip = null;
|
this.imageEvaluation.ToolTip = null;
|
||||||
|
|
||||||
this.textBlockBerth.Text = this.ShipcallControlModel?.GetBerthText(null);
|
this.textBlockBerth.Text = this.ShipcallControlModel?.GetBerthText(null);
|
||||||
this.textBlockCallsign.Text = this.ShipcallControlModel?.Ship?.Callsign;
|
this.textBlockDraft.Text = (this.ShipcallControlModel?.Shipcall?.Draft != null) ? $"{this.ShipcallControlModel?.Shipcall?.Draft.Value.ToString("N2")} m" : "-";
|
||||||
this.textBlockETA.Text = this.ShipcallControlModel?.GetETAETD(true);
|
this.textBlockETA.Text = this.ShipcallControlModel?.GetETAETD(true);
|
||||||
|
|
||||||
this.textBlockIMO.Text = this.ShipcallControlModel?.Ship?.Imo.ToString();
|
this.textBlockIMO.Text = this.ShipcallControlModel?.Ship?.Imo.ToString();
|
||||||
this.textBlockLengthWidth.Text = $"{this.ShipcallControlModel?.Ship?.Length} / {this.ShipcallControlModel?.Ship?.Width}";
|
this.textBlockLengthWidth.Text = $"{this.ShipcallControlModel?.Ship?.Length} / {this.ShipcallControlModel?.Ship?.Width}";
|
||||||
@ -320,7 +320,7 @@ namespace BreCalClient
|
|||||||
{
|
{
|
||||||
this.labelLastChangeAgency.Foreground = Brushes.White;
|
this.labelLastChangeAgency.Foreground = Brushes.White;
|
||||||
this.labelLastChangeAgency.FontWeight = FontWeights.DemiBold;
|
this.labelLastChangeAgency.FontWeight = FontWeights.DemiBold;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
this.labelLastChangeAgency.Foreground = Brushes.LightGray;
|
this.labelLastChangeAgency.Foreground = Brushes.LightGray;
|
||||||
@ -349,13 +349,13 @@ namespace BreCalClient
|
|||||||
atdRowDefinition.Height = mooringTimes.Atd.HasValue ? new(15) : new(0);
|
atdRowDefinition.Height = mooringTimes.Atd.HasValue ? new(15) : new(0);
|
||||||
|
|
||||||
if(mooringTimes.Ata.HasValue)
|
if(mooringTimes.Ata.HasValue)
|
||||||
{
|
{
|
||||||
labelTimesMooringATA.Content = mooringTimes.Ata.Value.ToString("dd.MM.yyyy HH:mm");
|
labelTimesMooringATA.Content = mooringTimes.Ata.Value.ToString("dd.MM.yyyy HH:mm");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mooringTimes.Atd.HasValue)
|
if (mooringTimes.Atd.HasValue)
|
||||||
{
|
{
|
||||||
labelTimesMooringATD.Content = mooringTimes.Atd.Value.ToString("dd.MM.yyyy HH:mm");
|
labelTimesMooringATD.Content = mooringTimes.Atd.Value.ToString("dd.MM.yyyy HH:mm");
|
||||||
}
|
}
|
||||||
|
|
||||||
DateTime? lc = this.ShipcallControlModel?.GetLastChangeForType(Extensions.ParticipantType.MOORING);
|
DateTime? lc = this.ShipcallControlModel?.GetLastChangeForType(Extensions.ParticipantType.MOORING);
|
||||||
@ -388,7 +388,7 @@ namespace BreCalClient
|
|||||||
this.imagePortAuthorityLocked.Visibility = (portAuthorityTimes.EtaBerthFixed ?? false) ? Visibility.Visible : Visibility.Hidden;
|
this.imagePortAuthorityLocked.Visibility = (portAuthorityTimes.EtaBerthFixed ?? false) ? Visibility.Visible : Visibility.Hidden;
|
||||||
lockTimeRowDefinition.Height = portAuthorityTimes.LockTime.HasValue ? new(15) : new(0);
|
lockTimeRowDefinition.Height = portAuthorityTimes.LockTime.HasValue ? new(15) : new(0);
|
||||||
if(portAuthorityTimes.LockTime.HasValue)
|
if(portAuthorityTimes.LockTime.HasValue)
|
||||||
{
|
{
|
||||||
labelPortAuthorityLockTime.Content = portAuthorityTimes.LockTime.Value.ToString("dd.MM.yyyy HH:mm");
|
labelPortAuthorityLockTime.Content = portAuthorityTimes.LockTime.Value.ToString("dd.MM.yyyy HH:mm");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -8,7 +8,7 @@
|
|||||||
<applicationSettings>
|
<applicationSettings>
|
||||||
<RoleEditor.Properties.Settings>
|
<RoleEditor.Properties.Settings>
|
||||||
<setting name="ConnectionString" serializeAs="String">
|
<setting name="ConnectionString" serializeAs="String">
|
||||||
<value>Server=localhost;User ID=ds;Password=HalloWach_2323XXL!!;Database=bremen_calling_devel;Port=33306</value>
|
<value>Server=localhost;User ID=ds;Password=HalloWach_2323XXL!!;Database=bremen_calling_test;Port=33306</value>
|
||||||
</setting>
|
</setting>
|
||||||
</RoleEditor.Properties.Settings>
|
</RoleEditor.Properties.Settings>
|
||||||
</applicationSettings>
|
</applicationSettings>
|
||||||
|
|||||||
2
src/RoleEditor/Properties/Settings.Designer.cs
generated
2
src/RoleEditor/Properties/Settings.Designer.cs
generated
@ -26,7 +26,7 @@ namespace RoleEditor.Properties {
|
|||||||
[global::System.Configuration.ApplicationScopedSettingAttribute()]
|
[global::System.Configuration.ApplicationScopedSettingAttribute()]
|
||||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||||
[global::System.Configuration.DefaultSettingValueAttribute("Server=localhost;User ID=ds;Password=HalloWach_2323XXL!!;Database=bremen_calling_" +
|
[global::System.Configuration.DefaultSettingValueAttribute("Server=localhost;User ID=ds;Password=HalloWach_2323XXL!!;Database=bremen_calling_" +
|
||||||
"devel;Port=33306")]
|
"test;Port=33306")]
|
||||||
public string ConnectionString {
|
public string ConnectionString {
|
||||||
get {
|
get {
|
||||||
return ((string)(this["ConnectionString"]));
|
return ((string)(this["ConnectionString"]));
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
<Profiles />
|
<Profiles />
|
||||||
<Settings>
|
<Settings>
|
||||||
<Setting Name="ConnectionString" Type="System.String" Scope="Application">
|
<Setting Name="ConnectionString" Type="System.String" Scope="Application">
|
||||||
<Value Profile="(Default)">Server=localhost;User ID=ds;Password=HalloWach_2323XXL!!;Database=bremen_calling_devel;Port=33306</Value>
|
<Value Profile="(Default)">Server=localhost;User ID=ds;Password=HalloWach_2323XXL!!;Database=bremen_calling_test;Port=33306</Value>
|
||||||
</Setting>
|
</Setting>
|
||||||
</Settings>
|
</Settings>
|
||||||
</SettingsFile>
|
</SettingsFile>
|
||||||
@ -13,6 +13,12 @@
|
|||||||
"SccProvider" = "8:"
|
"SccProvider" = "8:"
|
||||||
"Hierarchy"
|
"Hierarchy"
|
||||||
{
|
{
|
||||||
|
"Entry"
|
||||||
|
{
|
||||||
|
"MsmKey" = "8:_1E7663DCE02A4D848349229A724E961A"
|
||||||
|
"OwnerKey" = "8:_UNDEFINED"
|
||||||
|
"MsmSig" = "8:_UNDEFINED"
|
||||||
|
}
|
||||||
"Entry"
|
"Entry"
|
||||||
{
|
{
|
||||||
"MsmKey" = "8:_3E48B6E716164CC1826E094025517B3F"
|
"MsmKey" = "8:_3E48B6E716164CC1826E094025517B3F"
|
||||||
@ -25,6 +31,24 @@
|
|||||||
"OwnerKey" = "8:_UNDEFINED"
|
"OwnerKey" = "8:_UNDEFINED"
|
||||||
"MsmSig" = "8:_UNDEFINED"
|
"MsmSig" = "8:_UNDEFINED"
|
||||||
}
|
}
|
||||||
|
"Entry"
|
||||||
|
{
|
||||||
|
"MsmKey" = "8:_CD20A468610C42B89F66B4D3367A5A6A"
|
||||||
|
"OwnerKey" = "8:_UNDEFINED"
|
||||||
|
"MsmSig" = "8:_UNDEFINED"
|
||||||
|
}
|
||||||
|
"Entry"
|
||||||
|
{
|
||||||
|
"MsmKey" = "8:_UNDEFINED"
|
||||||
|
"OwnerKey" = "8:_CD20A468610C42B89F66B4D3367A5A6A"
|
||||||
|
"MsmSig" = "8:_UNDEFINED"
|
||||||
|
}
|
||||||
|
"Entry"
|
||||||
|
{
|
||||||
|
"MsmKey" = "8:_UNDEFINED"
|
||||||
|
"OwnerKey" = "8:_1E7663DCE02A4D848349229A724E961A"
|
||||||
|
"MsmSig" = "8:_UNDEFINED"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
"Configurations"
|
"Configurations"
|
||||||
{
|
{
|
||||||
@ -43,6 +67,14 @@
|
|||||||
"PrivateKeyFile" = "8:"
|
"PrivateKeyFile" = "8:"
|
||||||
"TimeStampServer" = "8:"
|
"TimeStampServer" = "8:"
|
||||||
"InstallerBootstrapper" = "3:2"
|
"InstallerBootstrapper" = "3:2"
|
||||||
|
"BootstrapperCfg:{63ACBE69-63AA-4F98-B2B6-99F9E24495F2}"
|
||||||
|
{
|
||||||
|
"Enabled" = "11:TRUE"
|
||||||
|
"PromptEnabled" = "11:TRUE"
|
||||||
|
"PrerequisitesLocation" = "2:1"
|
||||||
|
"Url" = "8:"
|
||||||
|
"ComponentsUrl" = "8:"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
"Release"
|
"Release"
|
||||||
{
|
{
|
||||||
@ -59,6 +91,14 @@
|
|||||||
"PrivateKeyFile" = "8:"
|
"PrivateKeyFile" = "8:"
|
||||||
"TimeStampServer" = "8:"
|
"TimeStampServer" = "8:"
|
||||||
"InstallerBootstrapper" = "3:2"
|
"InstallerBootstrapper" = "3:2"
|
||||||
|
"BootstrapperCfg:{63ACBE69-63AA-4F98-B2B6-99F9E24495F2}"
|
||||||
|
{
|
||||||
|
"Enabled" = "11:TRUE"
|
||||||
|
"PromptEnabled" = "11:TRUE"
|
||||||
|
"PrerequisitesLocation" = "2:1"
|
||||||
|
"Url" = "8:"
|
||||||
|
"ComponentsUrl" = "8:"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
"Deployable"
|
"Deployable"
|
||||||
@ -76,6 +116,14 @@
|
|||||||
{
|
{
|
||||||
"LaunchCondition"
|
"LaunchCondition"
|
||||||
{
|
{
|
||||||
|
"{A06ECF26-33A3-4562-8140-9B0E340D4F24}:_3415D375792A4611BF998D78F56CD22C"
|
||||||
|
{
|
||||||
|
"Name" = "8:.NET Framework"
|
||||||
|
"Message" = "8:[VSDNETMSG]"
|
||||||
|
"FrameworkVersion" = "8:.NETFramework,Version=v4.7.2"
|
||||||
|
"AllowLaterVersions" = "11:FALSE"
|
||||||
|
"InstallUrl" = "8:http://go.microsoft.com/fwlink/?LinkId=863262"
|
||||||
|
}
|
||||||
"{A06ECF26-33A3-4562-8140-9B0E340D4F24}:_7C5ED856EDF94532A041DBACD5D5C09E"
|
"{A06ECF26-33A3-4562-8140-9B0E340D4F24}:_7C5ED856EDF94532A041DBACD5D5C09E"
|
||||||
{
|
{
|
||||||
"Name" = "8:.NET Core"
|
"Name" = "8:.NET Core"
|
||||||
@ -90,6 +138,37 @@
|
|||||||
}
|
}
|
||||||
"File"
|
"File"
|
||||||
{
|
{
|
||||||
|
"{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_1E7663DCE02A4D848349229A724E961A"
|
||||||
|
{
|
||||||
|
"AssemblyRegister" = "3:1"
|
||||||
|
"AssemblyIsInGAC" = "11:FALSE"
|
||||||
|
"AssemblyAsmDisplayName" = "8:Xceed.Wpf.AvalonDock.resources, Version=4.6.0.0, Culture=de, PublicKeyToken=3e4669d2f30244f4, processorArchitecture=MSIL"
|
||||||
|
"ScatterAssemblies"
|
||||||
|
{
|
||||||
|
"_1E7663DCE02A4D848349229A724E961A"
|
||||||
|
{
|
||||||
|
"Name" = "8:Xceed.Wpf.AvalonDock.resources.dll"
|
||||||
|
"Attributes" = "3:512"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
"SourcePath" = "8:..\\BreCalClient\\bin\\Debug\\net6.0-windows\\de\\Xceed.Wpf.AvalonDock.resources.dll"
|
||||||
|
"TargetName" = "8:"
|
||||||
|
"Tag" = "8:"
|
||||||
|
"Folder" = "8:_F64284776BC0480CBF6C33B1FE00C374"
|
||||||
|
"Condition" = "8:"
|
||||||
|
"Transitive" = "11:FALSE"
|
||||||
|
"Vital" = "11:TRUE"
|
||||||
|
"ReadOnly" = "11:FALSE"
|
||||||
|
"Hidden" = "11:FALSE"
|
||||||
|
"System" = "11:FALSE"
|
||||||
|
"Permanent" = "11:FALSE"
|
||||||
|
"SharedLegacy" = "11:FALSE"
|
||||||
|
"PackageAs" = "3:1"
|
||||||
|
"Register" = "3:1"
|
||||||
|
"Exclude" = "11:FALSE"
|
||||||
|
"IsDependency" = "11:FALSE"
|
||||||
|
"IsolateTo" = "8:"
|
||||||
|
}
|
||||||
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_4EE484EAA4A246CBBB283030A6054BC0"
|
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_4EE484EAA4A246CBBB283030A6054BC0"
|
||||||
{
|
{
|
||||||
"SourcePath" = "8:..\\BreCalClient\\Resources\\containership.ico"
|
"SourcePath" = "8:..\\BreCalClient\\Resources\\containership.ico"
|
||||||
@ -110,6 +189,37 @@
|
|||||||
"IsDependency" = "11:FALSE"
|
"IsDependency" = "11:FALSE"
|
||||||
"IsolateTo" = "8:"
|
"IsolateTo" = "8:"
|
||||||
}
|
}
|
||||||
|
"{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_CD20A468610C42B89F66B4D3367A5A6A"
|
||||||
|
{
|
||||||
|
"AssemblyRegister" = "3:1"
|
||||||
|
"AssemblyIsInGAC" = "11:FALSE"
|
||||||
|
"AssemblyAsmDisplayName" = "8:BreCalClient.resources, Version=1.6.2.0, Culture=de, PublicKeyToken=9ce7b6b354e08ac9, processorArchitecture=MSIL"
|
||||||
|
"ScatterAssemblies"
|
||||||
|
{
|
||||||
|
"_CD20A468610C42B89F66B4D3367A5A6A"
|
||||||
|
{
|
||||||
|
"Name" = "8:BreCalClient.resources.dll"
|
||||||
|
"Attributes" = "3:512"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
"SourcePath" = "8:..\\BreCalClient\\bin\\Debug\\net6.0-windows\\de\\BreCalClient.resources.dll"
|
||||||
|
"TargetName" = "8:"
|
||||||
|
"Tag" = "8:"
|
||||||
|
"Folder" = "8:_F64284776BC0480CBF6C33B1FE00C374"
|
||||||
|
"Condition" = "8:"
|
||||||
|
"Transitive" = "11:FALSE"
|
||||||
|
"Vital" = "11:TRUE"
|
||||||
|
"ReadOnly" = "11:FALSE"
|
||||||
|
"Hidden" = "11:FALSE"
|
||||||
|
"System" = "11:FALSE"
|
||||||
|
"Permanent" = "11:FALSE"
|
||||||
|
"SharedLegacy" = "11:FALSE"
|
||||||
|
"PackageAs" = "3:1"
|
||||||
|
"Register" = "3:1"
|
||||||
|
"Exclude" = "11:FALSE"
|
||||||
|
"IsDependency" = "11:FALSE"
|
||||||
|
"IsolateTo" = "8:"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
"FileType"
|
"FileType"
|
||||||
{
|
{
|
||||||
@ -137,6 +247,17 @@
|
|||||||
"Property" = "8:TARGETDIR"
|
"Property" = "8:TARGETDIR"
|
||||||
"Folders"
|
"Folders"
|
||||||
{
|
{
|
||||||
|
"{9EF0B969-E518-4E46-987F-47570745A589}:_F64284776BC0480CBF6C33B1FE00C374"
|
||||||
|
{
|
||||||
|
"Name" = "8:de"
|
||||||
|
"AlwaysCreate" = "11:FALSE"
|
||||||
|
"Condition" = "8:"
|
||||||
|
"Transitive" = "11:FALSE"
|
||||||
|
"Property" = "8:_319F0FD8E72443BFA3AE5E1F3F42523B"
|
||||||
|
"Folders"
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
"{1525181F-901A-416C-8A58-119130FE478E}:_8BBC7FE2F38E4B41A71D26CCED7D0BCB"
|
"{1525181F-901A-416C-8A58-119130FE478E}:_8BBC7FE2F38E4B41A71D26CCED7D0BCB"
|
||||||
@ -166,15 +287,15 @@
|
|||||||
{
|
{
|
||||||
"Name" = "8:Microsoft Visual Studio"
|
"Name" = "8:Microsoft Visual Studio"
|
||||||
"ProductName" = "8:Bremen calling"
|
"ProductName" = "8:Bremen calling"
|
||||||
"ProductCode" = "8:{6EF71F76-3E55-483B-A032-4B29FDAFE6A4}"
|
"ProductCode" = "8:{0AD2A791-5208-4D6F-8601-598EE8FE9BF7}"
|
||||||
"PackageCode" = "8:{8E55F30F-A9C8-41E9-BCE8-431770A951ED}"
|
"PackageCode" = "8:{FE992D07-0C79-4C5A-9D71-66C8F3EAFB55}"
|
||||||
"UpgradeCode" = "8:{1C7FA3E4-BAB9-4911-9348-73094357FC7C}"
|
"UpgradeCode" = "8:{1C7FA3E4-BAB9-4911-9348-73094357FC7C}"
|
||||||
"AspNetVersion" = "8:"
|
"AspNetVersion" = "8:"
|
||||||
"RestartWWWService" = "11:FALSE"
|
"RestartWWWService" = "11:FALSE"
|
||||||
"RemovePreviousVersions" = "11:TRUE"
|
"RemovePreviousVersions" = "11:TRUE"
|
||||||
"DetectNewerInstalledVersion" = "11:TRUE"
|
"DetectNewerInstalledVersion" = "11:TRUE"
|
||||||
"InstallAllUsers" = "11:FALSE"
|
"InstallAllUsers" = "11:FALSE"
|
||||||
"ProductVersion" = "8:1.2.2"
|
"ProductVersion" = "8:1.6.1"
|
||||||
"Manufacturer" = "8:Informatikbüro Daniel Schick"
|
"Manufacturer" = "8:Informatikbüro Daniel Schick"
|
||||||
"ARPHELPTELEPHONE" = "8:+49 (0) 421 - 38 48 27"
|
"ARPHELPTELEPHONE" = "8:+49 (0) 421 - 38 48 27"
|
||||||
"ARPHELPLINK" = "8:https://www.bsmd.de/"
|
"ARPHELPLINK" = "8:https://www.bsmd.de/"
|
||||||
@ -716,7 +837,7 @@
|
|||||||
{
|
{
|
||||||
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_3E48B6E716164CC1826E094025517B3F"
|
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_3E48B6E716164CC1826E094025517B3F"
|
||||||
{
|
{
|
||||||
"SourcePath" = "8:..\\BreCalClient\\obj\\Release\\net6.0-windows\\apphost.exe"
|
"SourcePath" = "8:..\\BreCalClient\\obj\\Debug\\net6.0-windows\\apphost.exe"
|
||||||
"TargetName" = "8:"
|
"TargetName" = "8:"
|
||||||
"Tag" = "8:"
|
"Tag" = "8:"
|
||||||
"Folder" = "8:_7C8F7547CED64B3CAE7D0296A8BCE23F"
|
"Folder" = "8:_7C8F7547CED64B3CAE7D0296A8BCE23F"
|
||||||
|
|||||||
@ -69,7 +69,7 @@ def create_app(test_config=None, instance_path=None):
|
|||||||
app.register_blueprint(history.bp)
|
app.register_blueprint(history.bp)
|
||||||
app.register_blueprint(ports.bp)
|
app.register_blueprint(ports.bp)
|
||||||
|
|
||||||
logging.basicConfig(filename='brecaldevel.log', level=logging.DEBUG, format='%(asctime)s | %(name)s | %(levelname)s | %(message)s')
|
logging.basicConfig(filename='brecal.log', level=logging.DEBUG, format='%(asctime)s | %(name)s | %(levelname)s | %(message)s')
|
||||||
local_db.initPool(os.path.dirname(app.instance_path))
|
local_db.initPool(os.path.dirname(app.instance_path))
|
||||||
logging.info('App started')
|
logging.info('App started')
|
||||||
|
|
||||||
|
|||||||
@ -19,8 +19,13 @@ def GetParticipant(options):
|
|||||||
# query = SQLQuery.get_participant_by_user_id()
|
# query = SQLQuery.get_participant_by_user_id()
|
||||||
query = ("SELECT p.id as id, p.name as name, p.street as street, p.postal_code as postal_code, p.city as city, p.type as type, p.flags as flags, " +
|
query = ("SELECT p.id as id, p.name as name, p.street as street, p.postal_code as postal_code, p.city as city, p.type as type, p.flags as flags, " +
|
||||||
"p.created as created, p.modified as modified, p.deleted as deleted FROM participant p " +
|
"p.created as created, p.modified as modified, p.deleted as deleted FROM participant p " +
|
||||||
"INNER JOIN user u WHERE u.participant_id = p.id and u.id = %d") % options["user_id"]
|
"INNER JOIN user u WHERE u.participant_id = p.id and u.id = %s") % options["user_id"]
|
||||||
data = commands.query(query, model=model.Participant)
|
data = commands.query(query, model=model.Participant)
|
||||||
|
for participant in data:
|
||||||
|
port_query = "SELECT port_id FROM participant_port_map WHERE participant_id=?id?"
|
||||||
|
for record in commands.query(port_query, model=model.Port_Assignment, param={"id" : participant.id}, buffered=False):
|
||||||
|
pa = model.Port_Assignment(record.port_id)
|
||||||
|
participant.ports.append(pa.port_id)
|
||||||
else:
|
else:
|
||||||
# query = SQLQuery.get_participants()
|
# query = SQLQuery.get_participants()
|
||||||
if "participant_id" in options:
|
if "participant_id" in options:
|
||||||
@ -29,7 +34,7 @@ def GetParticipant(options):
|
|||||||
"FROM participant p " +
|
"FROM participant p " +
|
||||||
"JOIN participant_port_map ON p.id = participant_port_map.participant_id " +
|
"JOIN participant_port_map ON p.id = participant_port_map.participant_id " +
|
||||||
"WHERE participant_port_map.port_id IN " +
|
"WHERE participant_port_map.port_id IN " +
|
||||||
"(SELECT port_id FROM participant_port_map where participant_id = %d) " +
|
"(SELECT port_id FROM participant_port_map where participant_id = %s) " +
|
||||||
"GROUP BY id " +
|
"GROUP BY id " +
|
||||||
"ORDER BY p.name") % options["participant_id"]
|
"ORDER BY p.name") % options["participant_id"]
|
||||||
else:
|
else:
|
||||||
@ -41,7 +46,7 @@ def GetParticipant(options):
|
|||||||
|
|
||||||
data = commands.query(query, model=model.Participant)
|
data = commands.query(query, model=model.Participant)
|
||||||
for participant in data:
|
for participant in data:
|
||||||
port_query = "SELECT port_id FROM participant_port_map WHERE participant_id=?id?";
|
port_query = "SELECT port_id FROM participant_port_map WHERE participant_id=?id?"
|
||||||
for record in commands.query(port_query, model=model.Port_Assignment, param={"id" : participant.id}, buffered=False):
|
for record in commands.query(port_query, model=model.Port_Assignment, param={"id" : participant.id}, buffered=False):
|
||||||
pa = model.Port_Assignment(record.port_id)
|
pa = model.Port_Assignment(record.port_id)
|
||||||
participant.ports.append(pa.port_id)
|
participant.ports.append(pa.port_id)
|
||||||
|
|||||||
@ -7,11 +7,11 @@ import sys
|
|||||||
|
|
||||||
config_path = None
|
config_path = None
|
||||||
|
|
||||||
def initPool(instancePath, connection_filename="connection_data_devel.json"):
|
def initPool(instancePath, connection_filename="connection_data_prod.json"):
|
||||||
try:
|
try:
|
||||||
global config_path
|
global config_path
|
||||||
if(config_path == None):
|
if(config_path == None):
|
||||||
config_path = os.path.join(instancePath,f'../../../secure/{connection_filename}') #connection_data_devel.json');
|
config_path = os.path.join(instancePath,f'../../../secure/{connection_filename}') #connection_data_test.json');
|
||||||
|
|
||||||
print (config_path)
|
print (config_path)
|
||||||
|
|
||||||
|
|||||||
@ -181,7 +181,7 @@ class Participant(Schema):
|
|||||||
ports: List[int] = field(default_factory=list)
|
ports: List[int] = field(default_factory=list)
|
||||||
|
|
||||||
@validates("type")
|
@validates("type")
|
||||||
def validate_type(self, value):
|
def validate_type(self, value, **kwargs):
|
||||||
# e.g., when an IntFlag has the values 1,2,4; the maximum valid value is 7
|
# e.g., when an IntFlag has the values 1,2,4; the maximum valid value is 7
|
||||||
max_int = sum([int(val) for val in list(ParticipantType._value2member_map_.values())])
|
max_int = sum([int(val) for val in list(ParticipantType._value2member_map_.values())])
|
||||||
min_int = 0
|
min_int = 0
|
||||||
@ -192,7 +192,7 @@ class Participant(Schema):
|
|||||||
|
|
||||||
|
|
||||||
@validates("flags")
|
@validates("flags")
|
||||||
def validate_flags(self, value):
|
def validate_flags(self, value, **kwargs):
|
||||||
# e.g., when an IntFlag has the values 1,2,4; the maximum valid value is 7
|
# e.g., when an IntFlag has the values 1,2,4; the maximum valid value is 7
|
||||||
max_int = sum([int(val) for val in list(ParticipantFlag._value2member_map_.values())])
|
max_int = sum([int(val) for val in list(ParticipantFlag._value2member_map_.values())])
|
||||||
min_int = 0
|
min_int = 0
|
||||||
@ -217,7 +217,7 @@ class ShipcallSchema(Schema):
|
|||||||
id = fields.Integer(required=True)
|
id = fields.Integer(required=True)
|
||||||
ship_id = fields.Integer(required=True)
|
ship_id = fields.Integer(required=True)
|
||||||
port_id = fields.Integer(required=True)
|
port_id = fields.Integer(required=True)
|
||||||
type = fields.Enum(ShipcallType, default=ShipcallType.undefined)
|
type = fields.Enum(ShipcallType, load_default=ShipcallType.undefined, dump_default=ShipcallType.undefined)
|
||||||
eta = fields.DateTime(required=False, allow_none=True)
|
eta = fields.DateTime(required=False, allow_none=True)
|
||||||
voyage = fields.String(allow_none=True, required=False, validate=[validate.Length(max=16)])
|
voyage = fields.String(allow_none=True, required=False, validate=[validate.Length(max=16)])
|
||||||
etd = fields.DateTime(required=False, allow_none=True)
|
etd = fields.DateTime(required=False, allow_none=True)
|
||||||
@ -238,7 +238,7 @@ class ShipcallSchema(Schema):
|
|||||||
anchored = fields.Bool(required=False, allow_none=True)
|
anchored = fields.Bool(required=False, allow_none=True)
|
||||||
moored_lock = fields.Bool(required=False, allow_none=True)
|
moored_lock = fields.Bool(required=False, allow_none=True)
|
||||||
canceled = fields.Bool(required=False, allow_none=True)
|
canceled = fields.Bool(required=False, allow_none=True)
|
||||||
evaluation = fields.Enum(EvaluationType, required=False, allow_none=True, default=EvaluationType.undefined)
|
evaluation = fields.Enum(EvaluationType, required=False, allow_none=True, load_default=EvaluationType.undefined, dump_default=ShipcallType.undefined)
|
||||||
evaluation_message = fields.Str(allow_none=True, required=False)
|
evaluation_message = fields.Str(allow_none=True, required=False)
|
||||||
evaluation_time = fields.DateTime(required=False, allow_none=True)
|
evaluation_time = fields.DateTime(required=False, allow_none=True)
|
||||||
evaluation_notifications_sent = fields.Bool(required=False, allow_none=True)
|
evaluation_notifications_sent = fields.Bool(required=False, allow_none=True)
|
||||||
@ -261,7 +261,7 @@ class ShipcallSchema(Schema):
|
|||||||
return data
|
return data
|
||||||
|
|
||||||
@validates("type")
|
@validates("type")
|
||||||
def validate_type(self, value):
|
def validate_type(self, value, **kwargs):
|
||||||
valid_shipcall_type = int(value) in [item.value for item in ShipcallType]
|
valid_shipcall_type = int(value) in [item.value for item in ShipcallType]
|
||||||
|
|
||||||
if not valid_shipcall_type:
|
if not valid_shipcall_type:
|
||||||
@ -398,7 +398,7 @@ class TimesSchema(Schema):
|
|||||||
berth_info = fields.String(required=False, allow_none=True, validate=[validate.Length(max=512)])
|
berth_info = fields.String(required=False, allow_none=True, validate=[validate.Length(max=512)])
|
||||||
pier_side = fields.Bool(required=False, allow_none = True)
|
pier_side = fields.Bool(required=False, allow_none = True)
|
||||||
shipcall_id = fields.Integer(required=True)
|
shipcall_id = fields.Integer(required=True)
|
||||||
participant_type = fields.Integer(Required = False, allow_none=True)# TODO: could become Enum. # participant_type = fields.Enum(ParticipantType, required=False, allow_none=True, default=ParticipantType.undefined) #fields.Integer(required=False, allow_none=True)
|
participant_type = fields.Integer(required = False, allow_none=True) # TODO: could become Enum
|
||||||
ata = fields.DateTime(required=False, allow_none=True)
|
ata = fields.DateTime(required=False, allow_none=True)
|
||||||
atd = fields.DateTime(required=False, allow_none=True)
|
atd = fields.DateTime(required=False, allow_none=True)
|
||||||
eta_interval_end = fields.DateTime(required=False, allow_none=True)
|
eta_interval_end = fields.DateTime(required=False, allow_none=True)
|
||||||
@ -407,7 +407,7 @@ class TimesSchema(Schema):
|
|||||||
modified = fields.DateTime(required=False, allow_none=True)
|
modified = fields.DateTime(required=False, allow_none=True)
|
||||||
|
|
||||||
@validates("participant_type")
|
@validates("participant_type")
|
||||||
def validate_participant_type(self, value):
|
def validate_participant_type(self, value, **kwargs):
|
||||||
# #TODO: it may also make sense to block multi-assignments, whereas a value could be BSMD+AGENCY
|
# #TODO: it may also make sense to block multi-assignments, whereas a value could be BSMD+AGENCY
|
||||||
# while the validation fails when one of those multi-assignments is BSMD, it passes in cases,
|
# while the validation fails when one of those multi-assignments is BSMD, it passes in cases,
|
||||||
# such as AGENCY+PILOT
|
# such as AGENCY+PILOT
|
||||||
@ -420,56 +420,56 @@ class TimesSchema(Schema):
|
|||||||
raise ValidationError({"participant_type":f"the participant_type must not be .BSMD"})
|
raise ValidationError({"participant_type":f"the participant_type must not be .BSMD"})
|
||||||
|
|
||||||
@validates("eta_berth")
|
@validates("eta_berth")
|
||||||
def validate_eta_berth(self, value):
|
def validate_eta_berth(self, value, **kwargs):
|
||||||
# violation when time is not in the future, but also does not exceed a threshold for the 'reasonable' future
|
# violation when time is not in the future, but also does not exceed a threshold for the 'reasonable' future
|
||||||
# when 'value' is 'None', a ValidationError is not issued.
|
# when 'value' is 'None', a ValidationError is not issued.
|
||||||
valid_time = validate_time_is_in_not_too_distant_future(raise_validation_error=True, value=value, months=12)
|
valid_time = validate_time_is_in_not_too_distant_future(raise_validation_error=True, value=value, months=12)
|
||||||
return
|
return
|
||||||
|
|
||||||
@validates("etd_berth")
|
@validates("etd_berth")
|
||||||
def validate_etd_berth(self, value):
|
def validate_etd_berth(self, value, **kwargs):
|
||||||
# violation when time is not in the future, but also does not exceed a threshold for the 'reasonable' future
|
# violation when time is not in the future, but also does not exceed a threshold for the 'reasonable' future
|
||||||
# when 'value' is 'None', a ValidationError is not issued.
|
# when 'value' is 'None', a ValidationError is not issued.
|
||||||
valid_time = validate_time_is_in_not_too_distant_future(raise_validation_error=True, value=value, months=12)
|
valid_time = validate_time_is_in_not_too_distant_future(raise_validation_error=True, value=value, months=12)
|
||||||
return
|
return
|
||||||
|
|
||||||
@validates("lock_time")
|
@validates("lock_time")
|
||||||
def validate_lock_time(self, value):
|
def validate_lock_time(self, value, **kwargs):
|
||||||
# violation when time is not in the future, but also does not exceed a threshold for the 'reasonable' future
|
# violation when time is not in the future, but also does not exceed a threshold for the 'reasonable' future
|
||||||
# when 'value' is 'None', a ValidationError is not issued.
|
# when 'value' is 'None', a ValidationError is not issued.
|
||||||
valid_time = validate_time_is_in_not_too_distant_future(raise_validation_error=True, value=value, months=12)
|
valid_time = validate_time_is_in_not_too_distant_future(raise_validation_error=True, value=value, months=12)
|
||||||
return
|
return
|
||||||
|
|
||||||
@validates("zone_entry")
|
@validates("zone_entry")
|
||||||
def validate_zone_entry(self, value):
|
def validate_zone_entry(self, value, **kwargs):
|
||||||
# violation when time is not in the future, but also does not exceed a threshold for the 'reasonable' future
|
# violation when time is not in the future, but also does not exceed a threshold for the 'reasonable' future
|
||||||
# when 'value' is 'None', a ValidationError is not issued.
|
# when 'value' is 'None', a ValidationError is not issued.
|
||||||
valid_time = validate_time_is_in_not_too_distant_future(raise_validation_error=True, value=value, months=12)
|
valid_time = validate_time_is_in_not_too_distant_future(raise_validation_error=True, value=value, months=12)
|
||||||
return
|
return
|
||||||
|
|
||||||
@validates("operations_start")
|
@validates("operations_start")
|
||||||
def validate_operations_start(self, value):
|
def validate_operations_start(self, value, **kwargs):
|
||||||
# violation when time is not in the future, but also does not exceed a threshold for the 'reasonable' future
|
# violation when time is not in the future, but also does not exceed a threshold for the 'reasonable' future
|
||||||
# when 'value' is 'None', a ValidationError is not issued.
|
# when 'value' is 'None', a ValidationError is not issued.
|
||||||
valid_time = validate_time_is_in_not_too_distant_future(raise_validation_error=True, value=value, months=12)
|
valid_time = validate_time_is_in_not_too_distant_future(raise_validation_error=True, value=value, months=12)
|
||||||
return
|
return
|
||||||
|
|
||||||
@validates("operations_end")
|
@validates("operations_end")
|
||||||
def validate_operations_end(self, value):
|
def validate_operations_end(self, value, **kwargs):
|
||||||
# violation when time is not in the future, but also does not exceed a threshold for the 'reasonable' future
|
# violation when time is not in the future, but also does not exceed a threshold for the 'reasonable' future
|
||||||
# when 'value' is 'None', a ValidationError is not issued.
|
# when 'value' is 'None', a ValidationError is not issued.
|
||||||
valid_time = validate_time_is_in_not_too_distant_future(raise_validation_error=True, value=value, months=12)
|
valid_time = validate_time_is_in_not_too_distant_future(raise_validation_error=True, value=value, months=12)
|
||||||
return
|
return
|
||||||
|
|
||||||
@validates("eta_interval_end")
|
@validates("eta_interval_end")
|
||||||
def validate_eta_interval_end(self, value):
|
def validate_eta_interval_end(self, value, **kwargs):
|
||||||
# violation when time is not in the future, but also does not exceed a threshold for the 'reasonable' future
|
# violation when time is not in the future, but also does not exceed a threshold for the 'reasonable' future
|
||||||
# when 'value' is 'None', a ValidationError is not issued.
|
# when 'value' is 'None', a ValidationError is not issued.
|
||||||
valid_time = validate_time_is_in_not_too_distant_future(raise_validation_error=True, value=value, months=12)
|
valid_time = validate_time_is_in_not_too_distant_future(raise_validation_error=True, value=value, months=12)
|
||||||
return
|
return
|
||||||
|
|
||||||
@validates("etd_interval_end")
|
@validates("etd_interval_end")
|
||||||
def validate_etd_interval_end(self, value):
|
def validate_etd_interval_end(self, value, **kwargs):
|
||||||
# violation when time is not in the future, but also does not exceed a threshold for the 'reasonable' future
|
# violation when time is not in the future, but also does not exceed a threshold for the 'reasonable' future
|
||||||
# when 'value' is 'None', a ValidationError is not issued.
|
# when 'value' is 'None', a ValidationError is not issued.
|
||||||
valid_time = validate_time_is_in_not_too_distant_future(raise_validation_error=True, value=value, months=12)
|
valid_time = validate_time_is_in_not_too_distant_future(raise_validation_error=True, value=value, months=12)
|
||||||
@ -492,13 +492,13 @@ class UserSchema(Schema):
|
|||||||
# #TODO: the user schema does not (yet) include the 'notify_' fields
|
# #TODO: the user schema does not (yet) include the 'notify_' fields
|
||||||
|
|
||||||
@validates("user_phone")
|
@validates("user_phone")
|
||||||
def validate_user_phone(self, value):
|
def validate_user_phone(self, value, **kwargs):
|
||||||
valid_characters = list(map(str,range(0,10)))+["+", " "]
|
valid_characters = list(map(str,range(0,10)))+["+", " "]
|
||||||
if not all([v in valid_characters for v in value]):
|
if not all([v in valid_characters for v in value]):
|
||||||
raise ValidationError({"user_phone":f"one of the phone number values is not valid."})
|
raise ValidationError({"user_phone":f"one of the phone number values is not valid."})
|
||||||
|
|
||||||
@validates("user_email")
|
@validates("user_email")
|
||||||
def validate_user_email(self, value):
|
def validate_user_email(self, value, **kwargs):
|
||||||
if not "@" in value:
|
if not "@" in value:
|
||||||
raise ValidationError({"user_email":f"invalid email address"})
|
raise ValidationError({"user_email":f"invalid email address"})
|
||||||
|
|
||||||
@ -578,15 +578,15 @@ class ShipSchema(Schema):
|
|||||||
participant_id = fields.Int(allow_none=True, required=False)
|
participant_id = fields.Int(allow_none=True, required=False)
|
||||||
length = fields.Float(allow_none=True, required=False, validate=[validate.Range(min=0, max=1000, min_inclusive=False, max_inclusive=False)])
|
length = fields.Float(allow_none=True, required=False, validate=[validate.Range(min=0, max=1000, min_inclusive=False, max_inclusive=False)])
|
||||||
width = fields.Float(allow_none=True, required=False, validate=[validate.Range(min=0, max=100, min_inclusive=False, max_inclusive=False)])
|
width = fields.Float(allow_none=True, required=False, validate=[validate.Range(min=0, max=100, min_inclusive=False, max_inclusive=False)])
|
||||||
is_tug = fields.Bool(allow_none=True, required=False, default=False)
|
is_tug = fields.Bool(allow_none=True, required=False, load_default=False, dump_default=False)
|
||||||
bollard_pull = fields.Int(allow_none=True, required=False)
|
bollard_pull = fields.Int(allow_none=True, required=False)
|
||||||
eni = fields.Int(allow_none=True, required=False)
|
eni = fields.Int(allow_none=True, required=False)
|
||||||
created = fields.DateTime(allow_none=True, required=False)
|
created = fields.DateTime(allow_none=True, required=False)
|
||||||
modified = fields.DateTime(allow_none=True, required=False)
|
modified = fields.DateTime(allow_none=True, required=False)
|
||||||
deleted = fields.Bool(allow_none=True, required=False, default=False)
|
deleted = fields.Bool(allow_none=True, required=False, load_default=False, dump_default=False)
|
||||||
|
|
||||||
@validates("name")
|
@validates("name")
|
||||||
def validate_name(self, value):
|
def validate_name(self, value, **kwargs):
|
||||||
character_length = len(str(value))
|
character_length = len(str(value))
|
||||||
if character_length<1:
|
if character_length<1:
|
||||||
raise ValidationError({"name":f"'name' argument should have at least one character"})
|
raise ValidationError({"name":f"'name' argument should have at least one character"})
|
||||||
@ -598,7 +598,7 @@ class ShipSchema(Schema):
|
|||||||
return
|
return
|
||||||
|
|
||||||
@validates("imo")
|
@validates("imo")
|
||||||
def validate_imo(self, value):
|
def validate_imo(self, value, **kwargs):
|
||||||
value = str(value).zfill(7) # 1 becomes '0000001' (7 characters). 12345678 becomes '12345678' (8 characters)
|
value = str(value).zfill(7) # 1 becomes '0000001' (7 characters). 12345678 becomes '12345678' (8 characters)
|
||||||
imo_length = len(value)
|
imo_length = len(value)
|
||||||
if imo_length != 7:
|
if imo_length != 7:
|
||||||
@ -606,7 +606,7 @@ class ShipSchema(Schema):
|
|||||||
return
|
return
|
||||||
|
|
||||||
@validates("callsign")
|
@validates("callsign")
|
||||||
def validate_callsign(self, value):
|
def validate_callsign(self, value, **kwargs):
|
||||||
if value is not None:
|
if value is not None:
|
||||||
callsign_length = len(str(value))
|
callsign_length = len(str(value))
|
||||||
if callsign_length>8:
|
if callsign_length>8:
|
||||||
|
|||||||
@ -110,7 +110,7 @@ class InputValidationShip():
|
|||||||
ships = json.loads(response)
|
ships = json.loads(response)
|
||||||
|
|
||||||
# extract only the 'imo' values
|
# extract only the 'imo' values
|
||||||
ship_imos = [ship.get("imo") for ship in ships if not ship.deleted]
|
ship_imos = [ship.get("imo") for ship in ships if not ship.get("deleted")]
|
||||||
|
|
||||||
# check, if the imo in the POST-request already exists in the list
|
# check, if the imo in the POST-request already exists in the list
|
||||||
imo_already_exists = loadedModel.get("imo") in ship_imos
|
imo_already_exists = loadedModel.get("imo") in ship_imos
|
||||||
|
|||||||
@ -498,7 +498,7 @@ class InputValidationShipcall():
|
|||||||
|
|
||||||
# if the *existing* shipcall in the database is canceled, it may not be changed
|
# if the *existing* shipcall in the database is canceled, it may not be changed
|
||||||
if shipcall.get("canceled", False):
|
if shipcall.get("canceled", False):
|
||||||
raise ValidationError({"canceled":f"The shipcall with id 'shipcall_id' is canceled. A canceled shipcall may not be changed."})
|
raise ValidationError({"canceled":f"The shipcall with id {shipcall_id} is canceled. A canceled shipcall may not be changed."})
|
||||||
return
|
return
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
|
|||||||
@ -2,7 +2,7 @@ import os
|
|||||||
import sys
|
import sys
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
sys.path.insert(0, '/var/www/brecal_devel/src/server')
|
sys.path.insert(0, '/var/www/brecal/src/server')
|
||||||
sys.path.insert(0, '/var/www/venv/lib/python3.12/site-packages/')
|
sys.path.insert(0, '/var/www/venv/lib/python3.12/site-packages/')
|
||||||
|
|
||||||
import schedule
|
import schedule
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user