private async void OnRemoveCommand() { var isRefered = await _programmingLanguageRepository.IsReferencedByFriendAsync(SelectedProgrammingLanguage.Id); if (isRefered) { await MessageDialogService.ShowInfoAsync($"The Language {SelectedProgrammingLanguage.Name} " + $"can't be removed bcoz it is refered by at least of friend"); return; } SelectedProgrammingLanguage.PropertyChanged -= Wrapper_PropertyChanged; _programmingLanguageRepository.Remove(SelectedProgrammingLanguage.Model); ProgrammingLanguages.Remove(SelectedProgrammingLanguage); SelectedProgrammingLanguage = null; HasChanges = _programmingLanguageRepository.HasChanges(); ((DelegateCommand)SaveCommand).RaiseCanExecuteChanged(); }
protected override async void OnDeleteExecute() { if (await _friendRepository.HasMeetingAync(Friend.Id)) { await MessageDialogService.ShowInfoAsync($"{Friend.FirstName} can't be deleted, becouse " + $"he is part of Meeting "); return; } var result = await MessageDialogService.ShowOkCancelDialogAsync($"Do you realy want to delete friend {Friend.FirstName} ?", "Question"); if (result == MessageDialogResult.OK) { _friendRepository.Remove(Friend.Model); await _friendRepository.SaveAsync(); RaiseDetailDeletedEvent(Friend.Id); } }
protected async override void OnSaveExecute() { try { await _programmingLanguageRepository.SaveAsync(); HasChanges = _programmingLanguageRepository.HasChanges(); RaiseCollectionSavedEvent(); } catch (Exception ex) { while (ex.InnerException != null) { ex = ex.InnerException; } await MessageDialogService.ShowInfoAsync($"Error while saving the entities," + $"the data will be reloaded. Details: {ex.Message}"); await LoadAsync(Id); } }