public GenreEditorWindowViewModel(Genre genre, MovieRepository repository)
        {
            if (genre == null)
            {
                createMode = true;
                genre = new Genre();
            }

            this.repository = repository;
            Genre = genre;
        }
        public void SetUp()
        {
            movieRepository = new MovieRepositoryStub();

            var genre1 = new Genre {Name = "action"};
            var genre2 = new Genre {Name = "comedy" };
            var genre3 = new Genre {Name = "adventure" };

            var movie1 = new Movie {Title = "Action Movie", Genres = new List<Genre> {genre1}};
            var movie2 = new Movie {Title = "Comedy Movie", Genres = new List<Genre> {genre2}};
            var movie3 = new Movie {Title = "Adventure Movie", Genres = new List<Genre> {genre3}};

            movieRepository.GenresStorage = new List<Genre> {genre1, genre2, genre3};
            movieRepository.MoviesStorage = new List<Movie> {movie1, movie2, movie3};
        }
        public void DeleteGenre(Genre genre)
        {
            var result = MessageBox.Show(
                string.Format(Resources.DeleteGenreConfirmationText, genre.Name),
                Resources.DeleteConfirmationCaption,
                MessageBoxButton.YesNo);

            if (result == MessageBoxResult.Yes)
            {
                try
                {
                    repository.Delete(genre);
                    RetrieveData();
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
        }
        public void OpenGenreEditor(Genre genre)
        {
            try
            {
                if (genre != null)
                {
                    genre = genre.Clone();
                }

                var editor = new GenreEditorWindow(genre);
                var result = editor.ShowDialog();

                if (result.HasValue && result.Value)
                {
                    RetrieveData();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
 public void Save(Genre genre, bool update)
 {
     throw new NotImplementedException();
 }
 public void Delete(Genre genre)
 {
     throw new NotImplementedException();
 }