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 DeleteSelectDirector(Guid Id) { if (DeleteDirectors.Any()) { if (Id != Guid.Empty) { DeleteSelectedDirector = DeleteDirectors.SingleOrDefault(director => director.Id == Id); } if (DeleteSelectedDirector == null) { DeleteDirectorId = Guid.Empty; } else { DeleteDirectorId = DeleteSelectedDirector.Id; } } else { DeleteDirectorId = Guid.Empty; } }