Skip to content

Commit 4989966

Browse files
Improve MyAccount VM: error handling & code simplification
Refactored MyAccountOptions initialization with collection initializer syntax for clarity. Added error handling for merchant details fetch, displaying a warning toast on failure. Simplified CancellationChangeToken instantiation using target-typed new expressions.
1 parent 83e6044 commit 4989966

1 file changed

Lines changed: 12 additions & 16 deletions

File tree

TransactionProcessor.Mobile.BusinessLogic/ViewModels/MyAccount/MyAccountPageViewModel.cs

Lines changed: 12 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -68,29 +68,25 @@ public String MerchantName {
6868
#region Methods
6969

7070
public async Task Initialise(CancellationToken cancellationToken) {
71-
this.MyAccountOptions = new List<ListViewItem> {
72-
new ListViewItem {
73-
Title = "Addresses"
74-
},
75-
new ListViewItem {
76-
Title = "Contacts"
77-
},
78-
new ListViewItem {
79-
Title = "Account Info"
80-
},
81-
new ListViewItem {
82-
Title = "Logout"
83-
}
84-
};
71+
this.MyAccountOptions = [
72+
new() { Title = "Addresses" },
73+
new() { Title = "Contacts" },
74+
new() { Title = "Account Info" },
75+
new() { Title = "Logout" }
76+
];
8577

8678
GetMerchantDetailsRequest request = GetMerchantDetailsRequest.Create();
8779

8880
Result<MerchantDetailsModel> merchantDetailsResult = await this.Mediator.Send(request, cancellationToken);
89-
// TODO: handle failure result
81+
if (merchantDetailsResult.IsFailed) {
82+
await this.DialogService.ShowWarningToast("Unable to load merchant details. Please try again later.", cancellationToken: cancellationToken);
83+
return;
84+
}
85+
9086
this.MerchantName = merchantDetailsResult.Data.MerchantName;
9187

9288
DateTime expirationTime = DateTime.Now.AddMinutes(60);
93-
CancellationChangeToken expirationToken = new CancellationChangeToken(new CancellationTokenSource(TimeSpan.FromMinutes(60)).Token);
89+
CancellationChangeToken expirationToken = new(new CancellationTokenSource(TimeSpan.FromMinutes(60)).Token);
9490
MemoryCacheEntryOptions cacheEntryOptions = new MemoryCacheEntryOptions()
9591
// Pin to cache.
9692
.SetPriority(CacheItemPriority.NeverRemove)

0 commit comments

Comments
 (0)