/*[HttpPost] * [ValidateAntiForgeryToken] * public async System.Threading.Tasks.Task<ActionResult> Index(ContestsIndexViewModel model) * { * //ToDo: разобраться и доделать. Сейчас всегда возвращает null или model.Contests.Any() = false, этого не должно быть * if (model != null && model.Contests != null && model.Contests.Any()) * { * foreach (var contest in model.Contests) * { * db.Entry(contest).State = EntityState.Modified; * } * await db.SaveChangesAsync(); * * return View(model); * } * return RedirectToAction("Index"); * }*/ public ActionResult Create() { var model = new ContestsCreateViewModel { ContestsTypes = new SelectList(_db.ContestsTypes, "Id", "Name") }; return(View(model)); }
public async System.Threading.Tasks.Task <ActionResult> Create(ContestsCreateViewModel model) { if (ModelState.IsValid) { if (await _db.Contests.AnyAsync(c => c.ContestsTypeId == model.ContestsTypeId && c.Name == model.Name)) { ModelState.AddModelError("", "Контест с таким именем и типом уже существует"); } else { var contest = new Contest { Id = Guid.NewGuid(), ContestsTypeId = model.ContestsTypeId, TeacherId = User.Identity.GetUserId(), Name = model.Name, IsActive = model.IsActive }; var contestTeacher = new ContestTeacher { Id = Guid.NewGuid(), ContestId = contest.Id, TeacherId = contest.TeacherId }; _db.Contests.Add(contest); _db.ContestTeachers.Add(contestTeacher); await _db.SaveChangesAsync(); return(RedirectToAction("Index")); } } model.ContestsTypes = new SelectList(_db.ContestsTypes, "Id", "Name"); return(View(model)); }