Skip to content

Commit d19ad5f

Browse files
committed
Improve Snackbar feedbacks
1 parent 43d6ce8 commit d19ad5f

File tree

15 files changed

+69
-26
lines changed

15 files changed

+69
-26
lines changed

KeyManager.Library.KeyStore.HSM_PKCS11/PKCS11KeyStore.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -641,7 +641,9 @@ public override async Task Store(IList<IChangeKeyEntry> changes)
641641
}
642642
else
643643
{
644-
log.Info(string.Format("Key Entry `{0}` already exists, skipping update as key generation was expected.", change.Identifier));
644+
string msg = string.Format("Key Entry `{0}` already exists, skipping key generation update.", change.Identifier);
645+
log.Info(msg);
646+
OnUserMessageNotified(msg);
645647
}
646648
}
647649
else

KeyManager.Library.KeyStore.LCP.UI/KeyManager.Library.KeyStore.LCP.UI.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
</PropertyGroup>
1111

1212
<ItemGroup>
13-
<PackageReference Include="Leosac.WpfApp" Version="1.19.0">
13+
<PackageReference Include="Leosac.WpfApp" Version="1.20.1">
1414
<ExcludeAssets>runtime</ExcludeAssets>
1515
</PackageReference>
1616
<PackageReference Include="MaterialDesignThemes" Version="4.9.0">

KeyManager.Library.KeyStore.NXP_SAM.UI/KeyManager.Library.KeyStore.NXP_SAM.UI.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
</PropertyGroup>
1111

1212
<ItemGroup>
13-
<PackageReference Include="Leosac.WpfApp" Version="1.19.0">
13+
<PackageReference Include="Leosac.WpfApp" Version="1.20.1">
1414
<ExcludeAssets>runtime</ExcludeAssets>
1515
</PackageReference>
1616
<PackageReference Include="MaterialDesignThemes" Version="4.9.0">

KeyManager.Library.KeyStore.SAM_SE.UI/KeyManager.Library.KeyStore.SAM_SE.UI.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
</PropertyGroup>
1111

1212
<ItemGroup>
13-
<PackageReference Include="Leosac.WpfApp" Version="1.19.0">
13+
<PackageReference Include="Leosac.WpfApp" Version="1.20.1">
1414
<ExcludeAssets>runtime</ExcludeAssets>
1515
</PackageReference>
1616
<PackageReference Include="MaterialDesignThemes" Version="4.9.0">

KeyManager.Library.UI/Favorites.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,15 +56,15 @@ public Favorites()
5656
}
5757
}
5858

59-
public override void SaveToFile()
59+
public override bool SaveToFile()
6060
{
6161
if (!string.IsNullOrEmpty(_settings?.FavoritesPath))
6262
{
63-
SaveToFile(_settings.FavoritesPath);
63+
return SaveToFile(_settings.FavoritesPath);
6464
}
6565
else
6666
{
67-
base.SaveToFile();
67+
return base.SaveToFile();
6868
}
6969
}
7070

KeyManager.Library.UI/KeyManager.Library.UI.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
</ItemGroup>
3232

3333
<ItemGroup>
34-
<PackageReference Include="Leosac.WpfApp" Version="1.19.0" />
34+
<PackageReference Include="Leosac.WpfApp" Version="1.20.1" />
3535
<PackageReference Include="MaterialDesignThemes" Version="4.9.0" />
3636
<PackageReference Include="Net.Codecrete.QrCodeGenerator" Version="2.0.5" />
3737
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />

KeyManager.Library/KeyStore/KeyEntryId.cs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,13 @@ public bool Equals(KeyEntryId? p)
8484

8585
public override string ToString()
8686
{
87-
return string.Format("Key Entry Id (Identifier: `{0}`, Label: `{1}`)", Id, Label);
87+
var str = string.Format("Key Entry Id (Identifier: `{0}`", Id);
88+
if (!string.IsNullOrEmpty(Label))
89+
{
90+
str += string.Format(", Label: `{0}`", Label);
91+
}
92+
str += ")";
93+
return str;
8894
}
8995

9096
public object Clone()

KeyManager.Library/KeyStore/KeyStore.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -499,6 +499,11 @@ protected void OnKeyEntryUpdated(IChangeKeyEntry keyEntry)
499499
KeyEntryUpdated?.Invoke(this, keyEntry);
500500
}
501501

502+
protected void OnUserMessageNotified(string message)
503+
{
504+
UserMessageNotified?.Invoke(this, message);
505+
}
506+
502507
/// <summary>
503508
/// Get a key from a key entry.
504509
/// </summary>
@@ -661,5 +666,7 @@ protected void OnKeyEntryUpdated(IChangeKeyEntry keyEntry)
661666
public event EventHandler<KeyEntry>? KeyEntryRetrieved;
662667

663668
public event EventHandler<IChangeKeyEntry>? KeyEntryUpdated;
669+
670+
public event EventHandler<string>? UserMessageNotified;
664671
}
665672
}

KeyManager/Domain/EditKeyStoreControlViewModel.cs

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ public class EditKeyStoreControlViewModel : ObservableValidator
2525
public EditKeyStoreControlViewModel(ISnackbarMessageQueue snackbarMessageQueue)
2626
{
2727
_showProgress = false;
28-
_snackbarMessageQueue = snackbarMessageQueue;
28+
SnackbarMessageQueue = snackbarMessageQueue;
2929
Tabs = new ObservableCollection<TabItem>();
3030
_keModels = new List<KeyEntriesControlViewModel>();
3131
RefreshKeyEntriesCommand = new AsyncRelayCommand(() => RefreshKeyEntries(500));
@@ -38,7 +38,7 @@ public EditKeyStoreControlViewModel(ISnackbarMessageQueue snackbarMessageQueue)
3838
});
3939
}
4040

41-
protected ISnackbarMessageQueue _snackbarMessageQueue;
41+
public ISnackbarMessageQueue SnackbarMessageQueue { get; private set; }
4242

4343
protected IList<KeyEntriesControlViewModel> _keModels;
4444
protected void OnKeyStoreUpdated()
@@ -135,7 +135,7 @@ public async Task OpenKeyStore()
135135
var classes = KeyStore.SupportedClasses;
136136
foreach (var kclass in classes)
137137
{
138-
var model = new KeyEntriesControlViewModel(_snackbarMessageQueue, kclass) { KeyStore = KeyStore };
138+
var model = new KeyEntriesControlViewModel(SnackbarMessageQueue, kclass) { KeyStore = KeyStore };
139139
model.DefaultKeyEntryUpdated += (sender, e) =>
140140
{
141141
OnKeyStoreUpdated();
@@ -177,7 +177,7 @@ public async Task RefreshKeyEntries(int delay)
177177
}
178178
catch(Exception ex)
179179
{
180-
SnackbarHelper.EnqueueError(_snackbarMessageQueue, ex, "Key Store Error");
180+
SnackbarHelper.EnqueueError(SnackbarMessageQueue, ex, "Key Store Error");
181181
}
182182
IsLoadingKeyEntries = false;
183183
}
@@ -274,6 +274,7 @@ public async Task<bool> RunOnKeyStore(UserControl dialog, Func<KeyStore, Func<st
274274
deststore.Properties = prop;
275275
deststore.KeyEntryRetrieved += (sender, e) => ProgressValue++;
276276
deststore.KeyEntryUpdated += (sender, e) => ProgressValue++;
277+
deststore.UserMessageNotified += (sender, e) => SnackbarHelper.EnqueueMessage(SnackbarMessageQueue, e);
277278
deststore.Options = model.Options;
278279
KeyStore!.Options = model.Options; // Options object contains information for source and destination key stores, this should probably be splitted...
279280
var initCallback = new Action<KeyStore, KeyEntryClass, int>((_, _, nbentries) =>
@@ -340,17 +341,17 @@ public async Task Publish()
340341
{
341342
if (await RunOnKeyStore(new PublishKeyStoreDialog(), KeyStore.Publish))
342343
{
343-
SnackbarHelper.EnqueueMessage(_snackbarMessageQueue, "Key Entries have been successfully published.");
344+
SnackbarHelper.EnqueueMessage(SnackbarMessageQueue, "Key Entries have been successfully published.");
344345
}
345346
}
346347
catch (KeyStoreException ex)
347348
{
348-
SnackbarHelper.EnqueueError(_snackbarMessageQueue, ex, "Key Store Error");
349+
SnackbarHelper.EnqueueError(SnackbarMessageQueue, ex, "Key Store Error");
349350
}
350351
catch (Exception ex)
351352
{
352353
log.Error("Publishing the Key Entries failed unexpected.", ex);
353-
SnackbarHelper.EnqueueError(_snackbarMessageQueue, ex);
354+
SnackbarHelper.EnqueueError(SnackbarMessageQueue, ex);
354355
}
355356
}
356357
}
@@ -363,17 +364,17 @@ public async Task Diff()
363364
{
364365
if (await RunOnKeyStore(new DiffKeyStoreDialog(), KeyStore.Diff))
365366
{
366-
SnackbarHelper.EnqueueMessage(_snackbarMessageQueue, "No differences found.");
367+
SnackbarHelper.EnqueueMessage(SnackbarMessageQueue, "No differences found.");
367368
}
368369
}
369370
catch (KeyStoreException ex)
370371
{
371-
SnackbarHelper.EnqueueError(_snackbarMessageQueue, ex, "Key Store Error");
372+
SnackbarHelper.EnqueueError(SnackbarMessageQueue, ex, "Key Store Error");
372373
}
373374
catch (Exception ex)
374375
{
375376
log.Error("Comparing the Key Entries failed unexpected.", ex);
376-
SnackbarHelper.EnqueueError(_snackbarMessageQueue, ex);
377+
SnackbarHelper.EnqueueError(SnackbarMessageQueue, ex);
377378
}
378379
}
379380
}

KeyManager/KMLeosacAppInfo.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ public override void InitializeMainWindow(MainWindowViewModel model)
7979
// Ensure everything is back to original state
8080
editModel.CloseKeyStore(false);
8181
editModel.KeyStore = ks;
82+
editModel.KeyStore.UserMessageNotified += (sender, e) => SnackbarHelper.EnqueueMessage(editModel.SnackbarMessageQueue, e);
8283
editModel.Favorite = fav;
8384
await editModel.OpenKeyStore();
8485

0 commit comments

Comments
 (0)