Пример #1
0
        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);
        }
Пример #2
0
        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;
            }
        }