예제 #1
0
        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 }));
        }
예제 #2
0
        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));
        }