public async System.Threading.Tasks.Task <ActionResult> AddTeachers(Guid?contestId, string id) { if (contestId == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } var contest = await _db.Contests.FindAsync(contestId); if (contest == null) { return(HttpNotFound()); } if (contest.TeacherId != User.Identity.GetUserId() && !User.IsInRole("administrator") && !_db.ContestTeachers.Any(ct => ct.ContestId == contestId)) { ViewBag.ErrorMessage = "Вы не имеете право добавлять преподавателей для данного контеста"; return(View("Error")); } if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } if (id == contest.TeacherId) { TempData["Message"] = "Вы не можете добавить создателя контеста в список его преподавателей"; return(RedirectToAction("Edit", new { id = contestId })); //ViewBag.ErrorMessage = "Вы не можете добавить создателя контеста в список его преподавателей"; //return View("Error"); } var contestTeacher = new ContestTeacher { Id = Guid.NewGuid(), ContestId = (Guid)contestId, TeacherId = id }; _db.Entry(contestTeacher).State = EntityState.Added; await _db.SaveChangesAsync(); return(RedirectToAction("Edit", new { id = contestId })); }
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)); }