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" })); }