public async override Task LoadAsync(Guid id) { SelectedItem = await Repository.GetSelectedAsync(id) ?? new Series(); Id = id; if (Id != default) { TabTitle = SelectedItem.Name; Name = SelectedItem.Name; } else { this.SwitchEditableStateExecute(); } await PopulateAllBooksCollection(); SetDefaultSeriesPictureIfNoneSet(); SelectedItem.PropertyChanged += (s, e) => { SetChangeTracker(); }; void SetDefaultSeriesPictureIfNoneSet() { if (SelectedItem.PicturePath is null) { SelectedItem.PicturePath = FileExplorerService.GetImagePath(); } } async Task PopulateAllBooksCollection() { AllBooks.Clear(); foreach (var item in await GetBookList()) { AllBooks.Add(item); } } }
public async override Task LoadAsync(Guid id) { try { var series = await domainService.Repository.GetSelectedAsync(id) ?? new Series(); SelectedItem = CreateWrapper(series); SelectedItem.PropertyChanged += (s, e) => { if (!HasChanges) { HasChanges = domainService.Repository.HasChanges(); } if (e.PropertyName == nameof(SelectedItem.HasErrors)) { ((DelegateCommand)SaveItemCommand).RaiseCanExecuteChanged(); } if (e.PropertyName == nameof(SelectedItem.Name)) { TabTitle = SelectedItem.Name; } }; ((DelegateCommand)SaveItemCommand).RaiseCanExecuteChanged(); Id = id; if (Id != default) { TabTitle = SelectedItem.Name; } else { this.SwitchEditableStateExecute(); SelectedItem.Name = ""; } await PopulateAllBooksCollection(); SetDefaultSeriesPictureIfNoneSet(); void SetDefaultSeriesPictureIfNoneSet() { if (SelectedItem.PicturePath is null) { SelectedItem.PicturePath = FileExplorerService.GetImagePath(); } } async Task PopulateAllBooksCollection() { AllBooks.Clear(); foreach (var item in await GetBookList()) { AllBooks.Add(item); } } } catch (Exception ex) { MessageBox.Show(ex.Message); logger.Error("Message: {Message}\n\n Stack trace: {StackTrace}\n\n", ex.Message, ex.StackTrace); } }