public void Load() { AddDirectors.Clear(); DeleteDirectors.Clear(); var persons = _personRepository.GetAll(); if (FilmId == Guid.Empty) { AddDirectors.AddRange(persons); AddSelectDirector(AddDirectorId); DeleteSelectDirector(DeleteDirectorId); return; } var filmListOfDirectors = _filmRepository.GetById(FilmId).Directors; var directorsInFilm = new List <PersonListModel>(); var directorsNotInFilm = new List <PersonListModel>(); foreach (var person in persons) { var canAdd = true; foreach (var director in filmListOfDirectors) { if (person.Id == director.DirectorId) { directorsInFilm.Add(person); canAdd = false; break; } } if (canAdd) { directorsNotInFilm.Add(person); } } AddDirectors.AddRange(directorsNotInFilm); DeleteDirectors.AddRange(directorsInFilm); AddSelectDirector(AddDirectorId); DeleteSelectDirector(DeleteDirectorId); }
private void AddSelectDirector(Guid Id) { if (AddDirectors.Any()) { if (Id != Guid.Empty) { AddSelectedDirector = AddDirectors.SingleOrDefault(director => director.Id == Id); } if (AddSelectedDirector == null) { AddDirectorId = Guid.Empty; } else { AddDirectorId = AddSelectedDirector.Id; } } else { AddDirectorId = Guid.Empty; } }