From 0e2e0061750a89dbc84bac9a912d4f1271d9584d Mon Sep 17 00:00:00 2001 From: Valters Melnalksnis Date: Sat, 10 Feb 2024 14:53:18 +0200 Subject: [PATCH 1/2] fix(desktop): Refresh loan list after saving a loan --- docs/changelog.html | 4 ++++ .../Transactions/Loans/LoanViewModel.cs | 13 ++++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/docs/changelog.html b/docs/changelog.html index b6151d88c..0c27a63b7 100644 --- a/docs/changelog.html +++ b/docs/changelog.html @@ -85,6 +85,10 @@

Fixed

Fixed desktop shortcut working directory in #1080 +
  • + Fixed loan list not refreshing after saving in + #1081 +
  • diff --git a/source/Gnomeshade.Avalonia.Core/Transactions/Loans/LoanViewModel.cs b/source/Gnomeshade.Avalonia.Core/Transactions/Loans/LoanViewModel.cs index 38d64bbb9..119d3f133 100644 --- a/source/Gnomeshade.Avalonia.Core/Transactions/Loans/LoanViewModel.cs +++ b/source/Gnomeshade.Avalonia.Core/Transactions/Loans/LoanViewModel.cs @@ -36,13 +36,19 @@ public LoanViewModel(IActivityService activityService, IGnomeshadeClient gnomesh _details = new(activityService, gnomeshadeClient, transactionId, null); PropertyChanged += OnPropertyChanged; + _details.Upserted += DetailsOnUpserted; } /// public override LoanUpsertionViewModel Details { get => _details; - set => SetAndNotify(ref _details, value); + set + { + _details.Upserted -= DetailsOnUpserted; + SetAndNotify(ref _details, value); + _details.Upserted += DetailsOnUpserted; + } } /// @@ -92,4 +98,9 @@ private void OnPropertyChanged(object? sender, PropertyChangedEventArgs e) OnPropertyChanged(nameof(Total)); } } + + private async void DetailsOnUpserted(object? sender, UpsertedEventArgs e) + { + await RefreshAsync(); + } } From 8903f3adbf1ddf1b75fe498eb9367853aaf02151 Mon Sep 17 00:00:00 2001 From: Valters Melnalksnis Date: Sat, 10 Feb 2024 14:55:24 +0200 Subject: [PATCH 2/2] feat(desktop): Switch top level view models to singleton lifecycle --- docs/changelog.html | 9 +++- .../ServiceCollectionExtensions.cs | 44 +++++++++---------- 2 files changed, 29 insertions(+), 24 deletions(-) diff --git a/docs/changelog.html b/docs/changelog.html index 0c27a63b7..b7874a9c6 100644 --- a/docs/changelog.html +++ b/docs/changelog.html @@ -55,9 +55,14 @@

    Added

      -