private void OnAddExecute() { var wrapper = new ProgrammingLanguageWrapper(new ProgrammingLanguage()); wrapper.PropertyChanged += Wrapper_PropertyChanged; _programmingLanguageRepository.Add(wrapper.Model); ProgrammingLanguages.Add(wrapper); // trigger the validation wrapper.Name = ""; }
public async override Task LoadAsync(int id) { Id = id; foreach (var wrapper in ProgrammingLanguages) { wrapper.PropertyChanged -= Wrapper_PropertyChanged; } ProgrammingLanguages.Clear(); var languages = await _programmingLanguageRepository.GetAllAsync(); foreach (var model in languages) { var wrapper = new ProgrammingLanguageWrapper(model); wrapper.PropertyChanged += Wrapper_PropertyChanged; ProgrammingLanguages.Add(wrapper); } }
private async void OnRemoveExecute() { var isReferenced = await _programmingLanguageRepository.IsReferencedByFriendAsync( SelectedProgrammingLanguage.Id); if (isReferenced) { MessageDialogService.ShowInfoDialog( $"The language {SelectedProgrammingLanguage.Name}" + $"cannot be removed 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(); }
public override async Task LoadAsync(int id) { Id = id; foreach (var wrapper in ProgrammingLanguages) { wrapper.PropertyChanged -= Wrapper_PropertyChanged; } ProgrammingLanguages.Clear(); IEnumerable <ProgrammingLanguage> languages = await _programmingLanguageRepository.GetAllAsync(); foreach (var language in languages) { var wrapper = new ProgrammingLanguageWrapper(language); wrapper.PropertyChanged += Wrapper_PropertyChanged; ProgrammingLanguages.Add(wrapper); } }