private async void OnRemoveExecute() { var isReferenced = await _programmingLanguageRepository.IsReferencedByFriendAsync(SelectedProgrammingLanguage.Id); if (isReferenced) { MessageDialogeService.ShowInfoDialog($"The language {SelectedProgrammingLanguage.Name} is already a favorite language for a friend it's cannot be deleted"); return; } SelectedProgrammingLanguage.PropertyChanged -= Wrapper_PropertyChanged; _programmingLanguageRepository.Delete(SelectedProgrammingLanguage.Model); ProgrammingLanguages.Remove(SelectedProgrammingLanguage); SelectedProgrammingLanguage = null; HasChanged = _programmingLanguageRepository.HasChanges(); ((DelegateCommand)SaveCommand).RaiseCanExecuteChanged(); }
private async void OnRemoveExecute() { var isReferenced = await _programmingLanguageRepository.IsReferencedByFriendAsync(SelectedProgrammingLanguage.Id); if (isReferenced) { MessageDialogService.ShowInfoDialog($"language {SelectedProgrammingLanguage.Name} is referenced by Friends!"); return; } SelectedProgrammingLanguage.PropertyChanged -= Language_PropertyChanged; _programmingLanguageRepository.Remove(SelectedProgrammingLanguage.Model); ProgrammingLanguages.Remove(SelectedProgrammingLanguage); SelectedProgrammingLanguage = null; HasChanges = _programmingLanguageRepository.HasChanges(); ((DelegateCommand)SaveCommand).RaiseCanExecuteChanged(); }
private async void OnRemoveCommand() { var isReferenced = await _repository.IsReferencedByFriendAsync(SelectedProgrammingLanguage.Id); if (isReferenced) { MessageDialogService.ShowInfoDialog($"Cannot delete referenced language: {SelectedProgrammingLanguage.Name}"); return; } SelectedProgrammingLanguage.PropertyChanged -= Wrapper_PropertyChanged; //odłącz eventy od usuwanego elementu _repository.Remove(SelectedProgrammingLanguage.Model); //wywal z repo ProgrammingLanguages.Remove(SelectedProgrammingLanguage); //wywal z listy SelectedProgrammingLanguage = null; //wybrany teraz jest null HasChanges = _repository.HasChanges(); // w repo zaszły zmiany więc ustawiamy flagę w modelu ((DelegateCommand)SaveCommand).RaiseCanExecuteChanged(); // odpalamy event i sprawdzamy czy Save może być aktywny }
private async void OnRemoveExecute() { var isReferenced = await _programmingLanguageRepository.IsReferencedByFriendAsync(SelectedProgrammingLanguage.Id); if (isReferenced) { await MessageDialogService.ShowInfoDialogAsync($"The language {SelectedProgrammingLanguage.Name} can't be removes, as it is referenced by at least one friend."); return; } SelectedProgrammingLanguage.PropertyChanged -= Wrapper_PropertyChanged; _programmingLanguageRepository.Remove(SelectedProgrammingLanguage.Model); ProgrammingLanguages.Remove(SelectedProgrammingLanguage); SelectedProgrammingLanguage = null; HasChanges = _programmingLanguageRepository.HasChanges(); ((DelegateCommand)SaveCommand).RaiseCanExecuteChanged(); }
private async void OnRemoveProgramminLanguageExecute() { var isReferenced = await this._programmingLanguagesService .IsReferencedAsync(SelectedProgrammingLanguage.Id); if (isReferenced) { await this._messageDialogService.ShowInfoDialogAsync("This language is referencet by at least one friend, can't be removed"); return; } SelectedProgrammingLanguage.PropertyChanged -= Wrapper_PropertyChanged; this._programmingLanguagesService.Remove(SelectedProgrammingLanguage.Model); ProgrammingLanguages.Remove(SelectedProgrammingLanguage); SelectedProgrammingLanguage = null; HasChange = this._programmingLanguagesService.HasChanges(); ((DelegateCommand)SaveCommand).RaiseCanExecuteChanged(); }
private async void OnRemoveExecute() { // Checking if language is referenced; cannot be deleted if it is. var isReferenced = await programmingLanguageRepository.IsReferencedByFriendAsync(SelectedProgrammingLanguage.Id); if (isReferenced) { MessageDialogService.ShowInfoDialogAsync($"The language {SelectedProgrammingLanguage.Name} cannot be deleted as it is referenced by one or more friends."); return; } SelectedProgrammingLanguage.PropertyChanged -= Wrapper_PropertyChanged; programmingLanguageRepository.Remove(SelectedProgrammingLanguage.Model); ProgrammingLanguages.Remove(SelectedProgrammingLanguage); SelectedProgrammingLanguage = null; HasChanges = programmingLanguageRepository.HasChanges(); ((DelegateCommand)SaveCommand).RaiseCanExecuteChanged(); }