diff --git a/docs/BremenCalling_Datenmodell.xlsx b/docs/BremenCalling_Datenmodell_Vers.003a.xlsx
similarity index 100%
rename from docs/BremenCalling_Datenmodell.xlsx
rename to docs/BremenCalling_Datenmodell_Vers.003a.xlsx
diff --git a/misc/logo_bremen_calling.png b/misc/logo_bremen_calling.png
new file mode 100644
index 0000000..bb97bf5
Binary files /dev/null and b/misc/logo_bremen_calling.png differ
diff --git a/src/BreCalClient/BreCalClient.csproj b/src/BreCalClient/BreCalClient.csproj
index f3e0021..85258c8 100644
--- a/src/BreCalClient/BreCalClient.csproj
+++ b/src/BreCalClient/BreCalClient.csproj
@@ -24,6 +24,7 @@
+
@@ -63,6 +64,7 @@
+
MSBuild:Compile
@@ -98,7 +100,7 @@
- ResXFileCodeGenerator
+ PublicResXFileCodeGenerator
Resources.Designer.cs
diff --git a/src/BreCalClient/MainWindow.xaml b/src/BreCalClient/MainWindow.xaml
index 737bf1a..9e1a5c2 100644
--- a/src/BreCalClient/MainWindow.xaml
+++ b/src/BreCalClient/MainWindow.xaml
@@ -5,6 +5,7 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:BreCalClient"
xmlns:xctk="http://schemas.xceed.com/wpf/xaml/toolkit"
+ xmlns:p = "clr-namespace:BreCalClient.Resources"
mc:Ignorable="d"
Title="{DynamicResource textApplicationTitle}" Height="450" Width="800" Loaded="Window_Loaded" Closing="Window_Closing">
@@ -27,14 +28,14 @@
-
-
-
+
+
+
-
-
+
+
@@ -42,13 +43,15 @@
+
-
+
+
-
+
diff --git a/src/BreCalClient/MainWindow.xaml.cs b/src/BreCalClient/MainWindow.xaml.cs
index 13d820b..f7957bd 100644
--- a/src/BreCalClient/MainWindow.xaml.cs
+++ b/src/BreCalClient/MainWindow.xaml.cs
@@ -110,12 +110,17 @@ namespace BreCalClient
this._berths = await _api.BerthsGetAsync();
foreach(var berth in this._berths)
_berthLookupDict[berth.Id] = berth;
+ this.searchFilterControl.SetBerths(this._berths);
this._ships = await _api.ShipsGetAsync();
foreach(var ship in this._ships)
_shipLookupDict[ship.Id] = ship;
this._participants = await _api.ParticipantGetAsync();
- foreach(Participant participant in this._participants)
+ List agencies = new List();
+ foreach (Participant participant in this._participants)
+ {
this._participantLookupDict[participant.Id] = participant;
+
+ }
_ = Task.Run(() => RefreshShipcalls());
}
diff --git a/src/BreCalClient/Resources/Resources.Designer.cs b/src/BreCalClient/Resources/Resources.Designer.cs
index e5fb3f8..253a440 100644
--- a/src/BreCalClient/Resources/Resources.Designer.cs
+++ b/src/BreCalClient/Resources/Resources.Designer.cs
@@ -10,8 +10,8 @@
namespace BreCalClient.Resources {
using System;
-
-
+
+
///
/// A strongly-typed resource class, for looking up localized strings, etc.
///
@@ -22,21 +22,21 @@ namespace BreCalClient.Resources {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
- internal class Resources {
-
+ public class Resources {
+
private static global::System.Resources.ResourceManager resourceMan;
-
+
private static global::System.Globalization.CultureInfo resourceCulture;
-
+
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal Resources() {
}
-
+
///
/// Returns the cached ResourceManager instance used by this class.
///
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
- internal static global::System.Resources.ResourceManager ResourceManager {
+ public static global::System.Resources.ResourceManager ResourceManager {
get {
if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("BreCalClient.Resources.Resources", typeof(Resources).Assembly);
@@ -45,13 +45,13 @@ namespace BreCalClient.Resources {
return resourceMan;
}
}
-
+
///
/// Overrides the current thread's CurrentUICulture property for all
/// resource lookups using this strongly typed resource class.
///
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
- internal static global::System.Globalization.CultureInfo Culture {
+ public static global::System.Globalization.CultureInfo Culture {
get {
return resourceCulture;
}
@@ -59,7 +59,7 @@ namespace BreCalClient.Resources {
resourceCulture = value;
}
}
-
+
///
/// Looks up a localized resource of type System.Byte[].
///
@@ -69,7 +69,7 @@ namespace BreCalClient.Resources {
return ((byte[])(obj));
}
}
-
+
///
/// Looks up a localized resource of type System.Byte[].
///
@@ -79,27 +79,27 @@ namespace BreCalClient.Resources {
return ((byte[])(obj));
}
}
-
+
///
/// Looks up a localized resource of type System.Byte[].
///
- internal static byte[] arrow_right_blue {
+ public static byte[] arrow_right_blue {
get {
object obj = ResourceManager.GetObject("arrow_right_blue", resourceCulture);
return ((byte[])(obj));
}
}
-
+
///
/// Looks up a localized resource of type System.Byte[].
///
- internal static byte[] arrow_up_green {
+ public static byte[] arrow_up_green {
get {
object obj = ResourceManager.GetObject("arrow_up_green", resourceCulture);
return ((byte[])(obj));
}
}
-
+
///
/// Looks up a localized resource of type System.Byte[].
///
@@ -109,7 +109,7 @@ namespace BreCalClient.Resources {
return ((byte[])(obj));
}
}
-
+
///
/// Looks up a localized resource of type System.Byte[].
///
@@ -119,131 +119,267 @@ namespace BreCalClient.Resources {
return ((byte[])(obj));
}
}
-
+
///
/// Looks up a localized resource of type System.Byte[].
///
- internal static byte[] clock {
+ public static byte[] clock {
get {
object obj = ResourceManager.GetObject("clock", resourceCulture);
return ((byte[])(obj));
}
}
-
+
///
/// Looks up a localized resource of type System.Byte[].
///
- internal static byte[] containership {
+ public static byte[] containership {
get {
object obj = ResourceManager.GetObject("containership", resourceCulture);
return ((byte[])(obj));
}
}
-
+
///
/// Looks up a localized resource of type System.Byte[].
///
- internal static byte[] emergency_stop_button {
+ public static byte[] emergency_stop_button {
get {
object obj = ResourceManager.GetObject("emergency_stop_button", resourceCulture);
return ((byte[])(obj));
}
}
-
+
///
/// Looks up a localized resource of type System.Byte[].
///
- internal static byte[] ship2 {
+ public static byte[] logo_bremen_calling {
+ get {
+ object obj = ResourceManager.GetObject("logo_bremen_calling", resourceCulture);
+ return ((byte[])(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Byte[].
+ ///
+ public static byte[] ship2 {
get {
object obj = ResourceManager.GetObject("ship2", resourceCulture);
return ((byte[])(obj));
}
}
-
+
+ ///
+ /// Looks up a localized string similar to Agencies.
+ ///
+ public static string textAgencies {
+ get {
+ return ResourceManager.GetString("textAgencies", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Berths.
+ ///
+ public static string textBerths {
+ get {
+ return ResourceManager.GetString("textBerths", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Categories.
+ ///
+ public static string textCategories {
+ get {
+ return ResourceManager.GetString("textCategories", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Enter keyword.
+ ///
+ public static string textEnterKeyword {
+ get {
+ return ResourceManager.GetString("textEnterKeyword", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Exit.
+ ///
+ public static string textExit {
+ get {
+ return ResourceManager.GetString("textExit", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to from.
+ ///
+ public static string textFrom {
+ get {
+ return ResourceManager.GetString("textFrom", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Interval.
+ ///
+ public static string textInterval {
+ get {
+ return ResourceManager.GetString("textInterval", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Login.
+ ///
+ public static string textLogin {
+ get {
+ return ResourceManager.GetString("textLogin", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Password.
+ ///
+ public static string textPassword {
+ get {
+ return ResourceManager.GetString("textPassword", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Search.
+ ///
+ public static string textSearch {
+ get {
+ return ResourceManager.GetString("textSearch", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Ship length.
+ ///
+ public static string textShipLength {
+ get {
+ return ResourceManager.GetString("textShipLength", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to to.
+ ///
+ public static string textTo {
+ get {
+ return ResourceManager.GetString("textTo", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to User login.
+ ///
+ public static string textUserlogin {
+ get {
+ return ResourceManager.GetString("textUserlogin", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to User name.
+ ///
+ public static string textUsername {
+ get {
+ return ResourceManager.GetString("textUsername", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized resource of type System.Byte[].
///
- internal static byte[] trafficlight_green {
+ public static byte[] trafficlight_green {
get {
object obj = ResourceManager.GetObject("trafficlight_green", resourceCulture);
return ((byte[])(obj));
}
}
-
+
///
/// Looks up a localized resource of type System.Byte[].
///
- internal static byte[] trafficlight_off {
+ public static byte[] trafficlight_off {
get {
object obj = ResourceManager.GetObject("trafficlight_off", resourceCulture);
return ((byte[])(obj));
}
}
-
+
///
/// Looks up a localized resource of type System.Byte[].
///
- internal static byte[] trafficlight_on {
+ public static byte[] trafficlight_on {
get {
object obj = ResourceManager.GetObject("trafficlight_on", resourceCulture);
return ((byte[])(obj));
}
}
-
+
///
/// Looks up a localized resource of type System.Byte[].
///
- internal static byte[] trafficlight_red {
+ public static byte[] trafficlight_red {
get {
object obj = ResourceManager.GetObject("trafficlight_red", resourceCulture);
return ((byte[])(obj));
}
}
-
+
///
/// Looks up a localized resource of type System.Byte[].
///
- internal static byte[] trafficlight_red_yellow {
+ public static byte[] trafficlight_red_yellow {
get {
object obj = ResourceManager.GetObject("trafficlight_red_yellow", resourceCulture);
return ((byte[])(obj));
}
}
-
+
///
/// Looks up a localized resource of type System.Byte[].
///
- internal static byte[] trafficlight_yellow {
+ public static byte[] trafficlight_yellow {
get {
object obj = ResourceManager.GetObject("trafficlight_yellow", resourceCulture);
return ((byte[])(obj));
}
}
-
+
///
/// Looks up a localized resource of type System.Byte[].
///
- internal static byte[] umbrella_closed {
+ public static byte[] umbrella_closed {
get {
object obj = ResourceManager.GetObject("umbrella_closed", resourceCulture);
return ((byte[])(obj));
}
}
-
+
///
/// Looks up a localized resource of type System.Byte[].
///
- internal static byte[] umbrella_open {
+ public static byte[] umbrella_open {
get {
object obj = ResourceManager.GetObject("umbrella_open", resourceCulture);
return ((byte[])(obj));
}
}
-
+
///
/// Looks up a localized resource of type System.Byte[].
///
- internal static byte[] worker2 {
+ public static byte[] worker2 {
get {
object obj = ResourceManager.GetObject("worker2", resourceCulture);
return ((byte[])(obj));
diff --git a/src/BreCalClient/Resources/Resources.de.resx b/src/BreCalClient/Resources/Resources.de.resx
new file mode 100644
index 0000000..4a78ef7
--- /dev/null
+++ b/src/BreCalClient/Resources/Resources.de.resx
@@ -0,0 +1,217 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+
+ arrow_down_red.png;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ arrow_right_blue.png;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ arrow_up_green.png;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ clipboard.png;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ clock.png;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ containership.png;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ emergency_stop_button.png;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ logo_bremen_calling.png;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ ship2.png;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ Agenturen
+
+
+ Liegeplätze
+
+
+ Kategorien
+
+
+ Suchbegriff eingeben
+
+
+ Verlassen
+
+
+ von
+
+
+ Zeitraum
+
+
+ Anmelden
+
+
+ Passwort
+
+
+ Suche
+
+
+ Schiffslänge
+
+
+ bis
+
+
+ Anmeldung
+
+
+ Benutzername
+
+
+ trafficlight_green.png;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ trafficlight_off.png;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ trafficlight_on.png;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ trafficlight_red.png;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ trafficlight_red_yellow.png;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ trafficlight_yellow.png;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ umbrella_closed.png;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ umbrella_open.png;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ worker2.png;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/src/BreCalClient/Resources/Resources.resx b/src/BreCalClient/Resources/Resources.resx
index 4e8d30e..ab3230b 100644
--- a/src/BreCalClient/Resources/Resources.resx
+++ b/src/BreCalClient/Resources/Resources.resx
@@ -145,9 +145,54 @@
emergency_stop_button.png;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+ logo_bremen_calling.png;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
ship2.png;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+ Agencies
+
+
+ Berths
+
+
+ Categories
+
+
+ Enter keyword
+
+
+ Exit
+
+
+ from
+
+
+ Interval
+
+
+ Login
+
+
+ Password
+
+
+ Search
+
+
+ Ship length
+
+
+ to
+
+
+ User login
+
+
+ User name
+
trafficlight_green.png;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
diff --git a/src/BreCalClient/Resources/logo_bremen_calling.png b/src/BreCalClient/Resources/logo_bremen_calling.png
new file mode 100644
index 0000000..bb97bf5
Binary files /dev/null and b/src/BreCalClient/Resources/logo_bremen_calling.png differ
diff --git a/src/BreCalClient/SearchFilterControl.xaml b/src/BreCalClient/SearchFilterControl.xaml
new file mode 100644
index 0000000..565610b
--- /dev/null
+++ b/src/BreCalClient/SearchFilterControl.xaml
@@ -0,0 +1,81 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/BreCalClient/SearchFilterControl.xaml.cs b/src/BreCalClient/SearchFilterControl.xaml.cs
new file mode 100644
index 0000000..4a2d3c1
--- /dev/null
+++ b/src/BreCalClient/SearchFilterControl.xaml.cs
@@ -0,0 +1,63 @@
+// Copyright (c) 2023 schick Informatik
+// Description: Search filter bar for top window, generates events if filter criteria change
+//
+
+using BreCalClient.misc.Model;
+using System;
+using System.Collections.Generic;
+using System.Windows.Controls;
+using System.Windows.Input;
+
+namespace BreCalClient
+{
+ ///
+ /// Interaction logic for SearchFilterControl.xaml
+ ///
+ public partial class SearchFilterControl : UserControl
+ {
+
+ #region Construction
+
+ public SearchFilterControl()
+ {
+ InitializeComponent();
+ }
+
+ #endregion
+
+ #region events
+
+ public event Action? LogoImageClicked;
+
+ #endregion
+
+ #region Properties
+
+
+ #endregion
+
+ #region public methods
+
+ public void SetBerths(List berths)
+ {
+ this.comboBoxBerths.ItemsSource = berths;
+ }
+
+ public void SetAgencies(List agencies)
+ {
+ this.comboBoxAgencies.ItemsSource = agencies;
+ }
+
+ #endregion
+
+ #region event handler
+
+ private void logoImage_MouseUp(object sender, MouseButtonEventArgs e)
+ {
+ if (LogoImageClicked != null) LogoImageClicked();
+ }
+
+ #endregion
+
+ }
+}
diff --git a/src/BreCalClient/SearchFilterModel.cs b/src/BreCalClient/SearchFilterModel.cs
new file mode 100644
index 0000000..48413f0
--- /dev/null
+++ b/src/BreCalClient/SearchFilterModel.cs
@@ -0,0 +1,36 @@
+// Copyright (c) 2023 schick Informatik
+// Description: Data model for search filters
+//
+
+using BreCalClient.misc.Model;
+using System;
+using System.Collections.Generic;
+
+namespace BreCalClient
+{
+ internal class SearchFilterModel
+ {
+ public SearchFilterModel() { }
+
+ #region Properties
+
+ public DateTime? EtaFrom { get; set; }
+
+ public DateTime? EtaTo { get; set; }
+
+ public IEnumerable? Categories { get; set; }
+
+ public IEnumerable? Agencies { get; set; }
+
+ public IEnumerable? Berths { get; set; }
+
+ public string? SearchString { get; set; }
+
+ public double? ShipLengthFrom { get; set; }
+
+ public double? ShipLengthTo { get; set; }
+
+ #endregion
+
+ }
+}
diff --git a/src/BreCalClient/ShipcallControl.xaml b/src/BreCalClient/ShipcallControl.xaml
index 3f9f6d8..e2ca2b5 100644
--- a/src/BreCalClient/ShipcallControl.xaml
+++ b/src/BreCalClient/ShipcallControl.xaml
@@ -4,6 +4,7 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:BreCalClient"
+ xmlns:p = "clr-namespace:BreCalClient.Resources"
xmlns:db="clr-namespace:BreCalClient;assembly=BreCalClient"
mc:Ignorable="d"
d:DesignHeight="100" d:DesignWidth="800" Loaded="UserControl_Loaded">