Пример #1
0
        public async System.Threading.Tasks.Task <ActionResult> Edit(ContestsEditViewModel model)
        {
            if (ModelState.IsValid)
            {
                if (await _db.Contests.AnyAsync(c => c.ContestsTypeId == model.ContestsTypeId && c.Name == model.Name && c.Id != model.ContestId))
                {
                    ModelState.AddModelError("", "Контест с таким именем и типом уже существует");
                }
                else
                {
                    var teacherId = User.IsInRole("administrator") ? model.TeacherId : User.Identity.GetUserId();
                    var contest   = new Contest
                    {
                        Id             = model.ContestId,
                        ContestsTypeId = model.ContestsTypeId,
                        TeacherId      = teacherId,
                        Name           = model.Name,
                        IsActive       = model.IsActive
                    };

                    _db.Entry(contest).State = EntityState.Modified;
                    await _db.SaveChangesAsync();

                    return(RedirectToAction("Index"));
                }
            }
            model.ContestsTypes = new SelectList(_db.ContestsTypes, "Id", "Name");
            return(View(model));
        }
Пример #2
0
        public async System.Threading.Tasks.Task <ActionResult> Edit(Guid?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            var contest = await _db.Contests.FindAsync(id);

            if (contest == null)
            {
                return(HttpNotFound());
            }
            if (contest.TeacherId != User.Identity.GetUserId() && !User.IsInRole("administrator") && !_db.ContestTeachers.Any(ct => ct.ContestId == contest.Id))
            {
                ViewBag.ErrorMessage = "Вы не имеете право редактировать этот контест";
                return(View("Error"));
            }
            var model = new ContestsEditViewModel
            {
                ContestId      = contest.Id,
                ContestsTypeId = contest.ContestsTypeId,
                TeacherId      = contest.TeacherId,
                Name           = contest.Name,
                IsActive       = contest.IsActive,
                ContestsTypes  = new SelectList(_db.ContestsTypes, "Id", "Name")
            };

            return(View(model));
        }