public ActionResult Create(Models.Film model)
        {
            if (ModelState.IsValid)
            {
                if (!filmService.ExistsFilm(model.Name))
                {
                    var dbModel = new Domain.Film();
                    dbModel.InjectFrom(model);
                    //filmRepository.Add(dbModel);
                    filmService.AddFilm(dbModel);
                    TempData["message"] = string.Format("{0} has been saved", model.Name);
                }
                else
                {
                    ModelState.AddModelError("Name", "This movie is already in the database!");

                    var genres = genreRepository.GetAll().Select(f => new SelectListItem()
                    {
                        Value = f.Id.ToString(),
                        Text  = f.Name
                    }).ToList();
                    ViewBag.Genres = genres;

                    return(View(model));
                }
                //transform the object
                //unitOfWork.Commit();
                return(RedirectToAction("Index"));
            }

            return(View(model));
        }
示例#2
0
 private Domain.Film Map(Persistence.Film film)
 {
     Domain.Film filmModel = null;
     if (film != null)
     {
         filmModel = new Domain.Film(
             film.Id,
             film.Name,
             film.TmdbId,
             film.ImageUrl,
             film.ImdbId,
             film.ReleaseDate?.Year,
             film.Budget,
             film.Revenue,
             film.VoteAverage,
             film.Director);
     }
     return(filmModel);
 }
示例#3
0
        public Film Map(Domain.Film film)
        {
            Film filmModel = null;

            if (film != null)
            {
                filmModel = new Film()
                {
                    Id                    = film.Id,
                    Name                  = film.Name,
                    ImageUrl              = film.ImageUrl,
                    ImdbId                = film.ImdbId,
                    TmdbId                = film.TmdbId,
                    ReleaseYear           = film.ReleaseYear,
                    LesserRankedFilmNames = new string[0],
                    Budget                = film.Budget,
                    Revenue               = film.Revenue,
                    Director              = film.Director,
                    VoteAverage           = film.VoteAverage
                };
            }
            return(filmModel);
        }
示例#4
0
        /// <summary>
        /// Adds a film to the film list.
        /// </summary>
        /// <param name="filmList"></param>
        /// <param name="film"></param>
        /// <exception cref="FilmAlreadyInFilmListTemplateException">Occurs when the given film is already in the list.</exception>
        /// <returns></returns>
        public async Task <Domain.FilmList> AddFilmToFilmList(Domain.FilmList filmList, Domain.Film film)
        {
            var persistenceList = await filmListerContext.FilmListTemplates.FirstAsync(l => l.Id == filmList.Id);

            if (persistenceList.FilmListItems == null)
            {
                persistenceList.FilmListItems = new List <FilmListItem>();
            }
            if (persistenceList.FilmListItems.Any(item => item.Film.Id == film.Id))
            {
                throw new FilmAlreadyInFilmListTemplateException(film.Id, filmList.Id);
            }
            if (persistenceList.Published)
            {
                throw new FilmListTemplatePublishedException(filmList.Id);
            }

            var persistenceFilm = await filmListerContext.Films.FirstAsync(l => l.Id == film.Id);

            persistenceList.FilmListItems.Add(new FilmListItem
            {
                Film             = persistenceFilm,
                FilmListTemplate = persistenceList
            });
            await filmListerContext.SaveChangesAsync();

            var list = await RetrieveFilmListById(persistenceList.Id);

            return(list);
        }