예제 #1
0
 private void FilmViewModel_PropertyChanged(object sender, PropertyChangedEventArgs e)
 {
     if (e.PropertyName == this.GetPropertyName(() => CurrentFilm))
     {
         if (CurrentFilm != null && CurrentFilm.FilmId != Guid.Empty)
         {
             FilmEdit        = new Film();
             FilmEdit.FilmId = CurrentFilm.FilmId;
             FilmEdit.Name   = CurrentFilm.Name;
             DirectorEdit    = Directors.Where(x => x.DirectorId == CurrentFilm.DirectorId).First();
             RaisePropertyChanged("DirectorEdit");
             FilmEdit.ReleaseDate = CurrentFilm.ReleaseDate;
             FilmEdit.Evaluation  = CurrentFilm.Evaluation;
             FilmEdit.RegisterPropertyChanged(Film_PropertyChanged);
         }
     }
     else if (e.PropertyName == this.GetPropertyName(() => DirectorEdit))
     {
         if (DirectorEdit != null)
         {
             FilmEdit.Director = new Director()
             {
                 DirectorId = DirectorEdit.DirectorId,
                 Name       = DirectorEdit.Name,
                 Firstname  = DirectorEdit.Firstname
             };
             FilmEdit.DirectorId = DirectorEdit.DirectorId;
         }
     }
     CheckCanDeleteFilm();
 }
예제 #2
0
        public Task <Film[]> GetAllFilmsAsync(bool includeActors = false, bool includeDirector = false)
        {
            return(Task.Run(() =>
            {
                var result = Films.ToArray();
                if (includeActors && result != null && result.Count() > 0)
                {
                    foreach (var film in result)
                    {
                        if (film.Cast != null)
                        {
                            foreach (var actorFilm in film.Cast)
                            {
                                actorFilm.Actor = Actors.Where(a => a.Id == actorFilm.ActorId).SingleOrDefault();
                            }
                        }

                        if (includeDirector && result != null)
                        {
                            film.Director = Directors.Where(d => d.Id == film.DirectorId).SingleOrDefault();
                        }
                    }
                }

                return result;
            }));
        }
예제 #3
0
 public Task <Director> GetDirectorByNameAsync(string directorsFirstName, string directorsLastName, bool includeFilms = false)
 {
     return(Task.Run(() => {
         var result = Directors.Where(d => d.FirstName == directorsFirstName && d.LastName == directorsLastName).FirstOrDefault();
         if (includeFilms && result != null)
         {
             result.Films = Films.Where(f => f.DirectorId == result.Id).ToList();
         }
         return result;
     }));
 }
예제 #4
0
        public Task <bool> SaveChangesAsync()
        {
            return(Task.Run(() =>
            {
                if (FilmsToAdd.Count() <= 0 && ActorsToAdd.Count() <= 0 &&
                    DirectorsToAdd.Count() <= 0 && FilmsToDelete.Count() <= 0 &&
                    ActorsToDelete.Count() <= 0 && DirectorsToDelete.Count() <= 0)
                {
                    return false;
                }

                foreach (var film in FilmsToAdd)
                {
                    film.Id = Films.Count() + 1;
                    Films.Add(film);
                }
                foreach (var actor in ActorsToAdd)
                {
                    actor.Id = Actors.Count() + 1;
                    Actors.Add(actor);
                }
                foreach (var director in DirectorsToAdd)
                {
                    director.Id = Directors.Count() + 1;
                    Directors.Add(director);
                }

                foreach (var film in FilmsToDelete)
                {
                    var filmInList = Films.Where(f => f.Id == film.Id).FirstOrDefault();
                    Films.Remove(filmInList);
                }
                foreach (var actor in ActorsToDelete)
                {
                    var actorInList = Actors.Where(f => f.Id == actor.Id).FirstOrDefault();
                    Actors.Remove(actorInList);
                }
                foreach (var director in DirectorsToDelete)
                {
                    var directorInList = Directors.Where(f => f.Id == director.Id).FirstOrDefault();
                    Directors.Remove(directorInList);
                }

                Initialize();
                return true;
            }));
        }
예제 #5
0
 private void DeleteDirector()
 {
     if (CanDeleteDirector)
     {
         if (ConfirmationHelper.ConfirmationYesNo("Voulez-vous vraiment supprimer ce élément ?", "Confirmation"))
         {
             var directorToDelete = Directors.Where(x => x.DirectorId == DirectorEdit.DirectorId).FirstOrDefault();
             if (directorToDelete != null)
             {
                 if (_directorService.DeleteDirector(directorToDelete))
                 {
                     InitListDirector();
                     directorToDelete.PropertyChanged -= Director_PropertyChanged;
                     InitCurrentDirector();
                 }
             }
         }
     }
 }
예제 #6
0
        public Task <Film> GetFilmByTitleAsync(string filmTitle, bool includeCast = false, bool includeDirector = false, bool includeActorFilm = false)
        {
            return(Task.Run(() =>
            {
                var result = Films.Where(f => f.Title == filmTitle).FirstOrDefault();
                if (includeCast && result != null)
                {
                    if (result.Cast != null)
                    {
                        foreach (var actorFilm in result.Cast)
                        {
                            actorFilm.Actor = Actors.Where(a => a.Id == actorFilm.ActorId).SingleOrDefault();
                        }
                    }
                }

                if (includeDirector && result != null)
                {
                    result.Director = Directors.Where(d => d.Id == result.DirectorId).SingleOrDefault();
                }

                return result;
            }));
        }