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(); }
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; })); }
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; })); }
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; })); }
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(); } } } } }
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; })); }