Ejemplo n.º 1
0
        private void GenreSelectionChangedHandler(GenreSelection genreSelection)
        {
            MovieGenre movieGenre = Movie.MovieGenres.Where(mg => mg.Genre.Id == genreSelection.Genre.Id).FirstOrDefault();

            if (genreSelection.Selected)
            {
                if (movieGenre == null)
                {
                    movieGenre       = MovieGenre.CreateNew <MovieGenre>();
                    movieGenre.Genre = genreSelection.Genre;
                    movieGenre.Movie = Movie;
                    Movie.MovieGenres.Add(movieGenre);
                    OnGenreSelectionChanged?.Invoke(genreSelection);
                }
                else if (movieGenre.IsDeleted)
                {
                    movieGenre.IsDeleted = false;
                }
            }
            else if (movieGenre != null)
            {
                // Wird ein Genre abgewählt, dass noch nicht gespeichert war, kann es einfach aus der Liste entfernt werden.
                // War es schon gespeichert, muss es auf Deleted gesetzt werden, damit das Delete in der DB stattfinden kann.
                if (movieGenre.IsNew)
                {
                    Movie.MovieGenres.Remove(movieGenre);
                }
                else
                {
                    movieGenre.IsDeleted = true;
                }
                OnGenreSelectionChanged?.Invoke(genreSelection);
            }
        }
Ejemplo n.º 2
0
        private GenreSelection CreateGenreSelection(Genre genre)
        {
            GenreSelection genreSelection = new GenreSelection()
            {
                Genre    = genre,
                Selected = Movie != null?Movie.MovieGenres.Any(mg => mg.Genre.Id == genre.Id && !mg.IsDeleted) : false
            };

            return(genreSelection);
        }