diff --git a/src/BreCalClient/App.config b/src/BreCalClient/App.config
index cab52d2..335a433 100644
--- a/src/BreCalClient/App.config
+++ b/src/BreCalClient/App.config
@@ -83,6 +83,9 @@
0
+
+
+
\ No newline at end of file
diff --git a/src/BreCalClient/MainWindow.xaml.cs b/src/BreCalClient/MainWindow.xaml.cs
index 6a8b171..734408d 100644
--- a/src/BreCalClient/MainWindow.xaml.cs
+++ b/src/BreCalClient/MainWindow.xaml.cs
@@ -143,7 +143,7 @@ namespace BreCalClient
private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
// serialize filter settings
- Properties.Settings.Default.FilterCriteria = this.searchFilterControl.SearchFilter.Serialize();
+ Properties.Settings.Default.FilterCriteriaMap = SearchFilterModel.Serialize();
Properties.Settings.Default.Save();
_tokenSource.Cancel();
}
@@ -405,6 +405,8 @@ namespace BreCalClient
private async void LoadStaticLists()
{
+ if (_loginResult == null) return;
+
BreCalLists.InitializeBerths(await _staticApi.BerthsGetAsync());
BreCalLists.InitializeShips(await _shipApi.ShipsGetAsync());
BreCalLists.InitializeParticipants(await _staticApi.ParticipantsGetAsync());
@@ -422,16 +424,33 @@ namespace BreCalClient
this.searchFilterControl.SetAgencies(BreCalLists.Participants_Agent);
- if (!string.IsNullOrEmpty(Properties.Settings.Default.FilterCriteria))
+ if (!string.IsNullOrEmpty(Properties.Settings.Default.FilterCriteriaMap))
{
- SearchFilterModel? sfm = SearchFilterModel.Deserialize(Properties.Settings.Default.FilterCriteria);
- if (sfm != null)
- this.searchFilterControl.SetFilterFromModel(sfm);
+ SearchFilterModel.Deserialize(Properties.Settings.Default.FilterCriteriaMap);
+ SearchFilterModel? currentFilter = null;
+ if (SearchFilterModel.filterMap != null)
+ {
+ if((_loginResult != null) && SearchFilterModel.filterMap.ContainsKey(_loginResult.Id))
+ {
+ currentFilter = SearchFilterModel.filterMap[_loginResult.Id];
+ }
+ }
+ else
+ {
+ SearchFilterModel.filterMap = new();
+ }
+ if (currentFilter == null)
+ {
+ currentFilter = new();
+ if(_loginResult != null)
+ SearchFilterModel.filterMap[_loginResult.Id] = currentFilter;
+ }
+ this.searchFilterControl.SetFilterFromModel(currentFilter);
}
_ = Task.Run(() => RefreshShipcalls());
-
_ = Task.Run(() => RefreshShips());
+
}
diff --git a/src/BreCalClient/Properties/Settings.Designer.cs b/src/BreCalClient/Properties/Settings.Designer.cs
index 2e8d6de..fd85a6b 100644
--- a/src/BreCalClient/Properties/Settings.Designer.cs
+++ b/src/BreCalClient/Properties/Settings.Designer.cs
@@ -12,7 +12,7 @@ namespace BreCalClient.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.5.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 {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
@@ -214,5 +214,17 @@ namespace BreCalClient.Properties {
this["W4Top"] = value;
}
}
+
+ [global::System.Configuration.UserScopedSettingAttribute()]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Configuration.DefaultSettingValueAttribute("")]
+ public string FilterCriteriaMap {
+ get {
+ return ((string)(this["FilterCriteriaMap"]));
+ }
+ set {
+ this["FilterCriteriaMap"] = value;
+ }
+ }
}
}
diff --git a/src/BreCalClient/Properties/Settings.settings b/src/BreCalClient/Properties/Settings.settings
index 7903ee0..b10fd5b 100644
--- a/src/BreCalClient/Properties/Settings.settings
+++ b/src/BreCalClient/Properties/Settings.settings
@@ -53,5 +53,8 @@
0
+
+
+
\ No newline at end of file
diff --git a/src/BreCalClient/SearchFilterModel.cs b/src/BreCalClient/SearchFilterModel.cs
index 478295e..a827ea3 100644
--- a/src/BreCalClient/SearchFilterModel.cs
+++ b/src/BreCalClient/SearchFilterModel.cs
@@ -33,18 +33,21 @@ namespace BreCalClient
public bool? MineOnly { get; set; }
+ public static Dictionary? filterMap = new();
+
#endregion
#region Serialisation
- public static SearchFilterModel? Deserialize(string json)
+ public static bool Deserialize(string json)
{
- return (SearchFilterModel?) JsonConvert.DeserializeObject(json, typeof(SearchFilterModel));
+ filterMap = (Dictionary?) JsonConvert.DeserializeObject(json, typeof(Dictionary));
+ return (filterMap != null);
}
- public string Serialize()
+ public static string Serialize()
{
- return JsonConvert.SerializeObject(this, Formatting.Indented);
+ return JsonConvert.SerializeObject(filterMap, Formatting.Indented);
}
#endregion