Beispiel #1
0
        public VideogameItemModel Build(int id)
        {
            var videogame = videogameRepository.GetIncludedById(id);

            var genreNames = videogame.Genres.Select(g => g.Name).ToList();

            var developer = developerRepository.GetDeveloperById(videogame.DeveloperId);

            var devModel = new DeveloperItemModel
            {
                Id   = developer.Id,
                Name = developer.Name,
            };

            return(new VideogameItemModel(videogame.Id, videogame.Name, devModel, genreNames));
        }
        public void HandleEdit(int id, VideogameForm form)
        {
            var videogame = videogameRepository.GetIncludedById(id);

            entityRepository.AttachOnSave(videogame);

            var formGenreNames     = form.Genres.Select(g => g.Name).ToList();
            var genresForVideogame = genreRepository.GetGenres().Where(g => formGenreNames.Contains(g.Name)).ToList();

            foreach (var genre in videogame.Genres.ToList())
            {
                videogame.Genres.Remove(genre);
            }

            videogame.Name        = form.Name;
            videogame.DeveloperId = form.DeveloperId;

            foreach (var genre in genresForVideogame)
            {
                videogame.Genres.Add(genre);
            }

            entityRepository.SaveChanges();
        }