Beispiel #1
0
        public async Task <IActionResult> Create(CreateSeanceViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(PartialView(model));
            }

            Film film = await _filmRepository.GetByIdAsync(model.FilmId);

            if (film == null)
            {
                ModelState.AddModelError(string.Empty, "Фильм не найден.");
                return(PartialView(model));
            }

            FilmSeance seance = new FilmSeance
            {
                Date       = model.Date,
                Time       = model.Time,
                Price      = model.Price,
                FilmId     = model.FilmId,
                RoomNumber = model.RoomNumber,
                Format     = model.Format
            };

            await _seanceRepository.CreateAsync(seance);

            film.Seances.Add(seance);
            await _filmRepository.UpdateAsync(film);

            return(RedirectToAction("Index", "Admin"));
        }
        public ActionResult Create(CreateSeanceViewModel createSeanceViewModel)
        {
            if (createSeanceViewModel == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            if (!ModelState.IsValid)
            {
                ViewBag.HallsCinemas = GetHallsCinemas();
                return(PartialView("_CreatePartial", createSeanceViewModel));
            }

            if (createSeanceViewModel.IsMultipleDateSelect)
            {
                var startDate = DateTime.ParseExact(createSeanceViewModel.Date, "dd/MM/yyyy", CultureInfo.InvariantCulture);
                var endDate   = DateTime.ParseExact(createSeanceViewModel.EndDate, "dd/MM/yyyy", CultureInfo.InvariantCulture);
                for (var date = startDate; date <= endDate; date = date.AddDays(1.0))
                {
                    SeanceViewModel   baseSeanceViewModel  = createSeanceViewModel;
                    SeanceDomainModel newSeanceDomainModel = Mapper.Map <SeanceViewModel, SeanceDomainModel>(baseSeanceViewModel);
                    newSeanceDomainModel.Date = date;
                    _seanceService.Add(newSeanceDomainModel);
                }
            }
            else
            {
                SeanceViewModel   seanceViewModel   = createSeanceViewModel;
                SeanceDomainModel seanceDomainModel = Mapper.Map <SeanceViewModel, SeanceDomainModel>(seanceViewModel);
                _seanceService.Add(seanceDomainModel);
            }

            var url = Url.Action("List", "Seance", routeValues: new { filmId = createSeanceViewModel.FilmId });

            return(Json(new { success = true, url = url, replaceTarget = "#SeanceList" }));
        }