private void OnAddExecute()
        {
            var wrapper = new ProgrammingLanguageWrapper(new ProgrammingLanguage());

            wrapper.PropertyChanged += Wrapper_PropertyChanged;
            _programmingLanguageRepository.Add(wrapper.Model);
            ProgrammingLanguages.Add(wrapper);

            //Trigger Validation
            wrapper.Name = "";
        }
        public override async 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);
            }
        }
Beispiel #3
0
        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();
        }
Beispiel #4
0
        public async override Task LoadAsync(int id)
        {
            Id = id;
            foreach (var language in ProgrammingLanguages)
            {
                language.PropertyChanged -= Language_PropertyChanged;
            }

            ProgrammingLanguages.Clear();
            var languages = await _programmingLanguageRepository.GetAllAsync();

            foreach (var language in languages)
            {
                var wrapper = new ProgrammingLanguageWrapper(language);
                wrapper.PropertyChanged += Language_PropertyChanged;
                ProgrammingLanguages.Add(wrapper);
            }
        }
        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();
        }
Beispiel #6
0
        public override async Task LoadAsync(int id)
        {
            Id = id;

            foreach (ProgrammingLanguageWrapper wrapper in ProgrammingLanguages)
            {
                wrapper.PropertyChanged -= HandleOnWrapperPropertyChanged;
            }

            ProgrammingLanguages.Clear();

            IEnumerable <ProgrammingLanguage> languages =
                await _programmingLanguageRepository.GetAllAsync();

            foreach (ProgrammingLanguage language in languages)
            {
                var wrapper = new ProgrammingLanguageWrapper(language);
                wrapper.PropertyChanged += HandleOnWrapperPropertyChanged;
                ProgrammingLanguages.Add(wrapper);
            }
        }
Beispiel #7
0
        public async override Task LoadAsync(int id)
        {
            // Przydziel id modelu do detailmodelview
            Id = id;

            //odłącz eventy
            foreach (var languageWrapper in ProgrammingLanguages)
            {
                languageWrapper.PropertyChanged -= Wrapper_PropertyChanged;
            }

            //wyczyść listę języków
            ProgrammingLanguages.Clear();

            //wypełnij ponownie i podepnij eventy
            var languages = await _repository.GetAllAsync();

            foreach (var programmingLanguage in languages)
            {
                var wrapper = new ProgrammingLanguageWrapper(programmingLanguage);
                wrapper.PropertyChanged += Wrapper_PropertyChanged;
                ProgrammingLanguages.Add(wrapper);
            }
        }