Пример #1
0
        public async Task <ActionResult> Edit(Guid?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            var team = await _db.Teams.FindAsync(id);

            if (team == null)
            {
                return(HttpNotFound());
            }
            if (!User.IsInRole("administrator"))
            {
                TempData["Message"] = "Вы не имеете право редактировать эту команду";
                return(RedirectToAction("Edit", new { id }));
                //ViewBag.ErrorMessage = "Вы не имеете право редактировать эту команду";
                //return View("Error");
            }
            var model = new TeamsEditViewModel
            {
                TeamId        = team.Id,
                Name          = team.Name,
                MaxTeamNumber = team.MaxTeamNumber
            };

            return(View(model));
        }
Пример #2
0
        public ActionResult Edit(TeamsEditViewModel viewModel)
        {
            ValidateTeam(viewModel.Team);

            if (ModelState.IsValid)
            {
                var team = viewModel.Team;

                _teamsRepository.Update(team);

                TempData["Message"] = "Your team was successfully updated!";

                return(RedirectToAction("Detail", new { id = team.Id }));
            }

            viewModel.Init(Repository, _eventsRepository, _teamMembersRepository);

            return(View(viewModel));
        }
Пример #3
0
        public async Task <ActionResult> Edit(TeamsEditViewModel model)
        {
            if (ModelState.IsValid)
            {
                var currentTeam = _db.Teams.Find(model.TeamId);
                if (currentTeam == null)
                {
                    return(HttpNotFound());
                }
                if ((await _db.Teams.AnyAsync(t => t.Name == model.Name) || model.Name == "") && model.MaxTeamNumber == currentTeam.MaxTeamNumber)
                {
                    ModelState.AddModelError("", "Команда с таким названием уже существует или не задано название команды");
                }
                else if (model.Name != "Одиночки" && currentTeam.Name == "Одиночки")
                {
                    ModelState.AddModelError("", "Нельзя изменить название у команды 'Одиночки'");
                }
                else
                {
                    if (model.MaxTeamNumber < currentTeam.Participants.Count)
                    {
                        ModelState.AddModelError("", "Максимальное количество участников в команде меньше, чем текущее количество участников. Пожалуйста, сначала сократите текущее количество участников в команде.");
                    }
                    else
                    {
                        var team = _db.Teams.Find(model.TeamId);
                        if (team == null)
                        {
                            return(HttpNotFound());
                        }
                        team.Name          = model.Name;
                        team.MaxTeamNumber = model.MaxTeamNumber;

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

                        return(RedirectToAction("Index"));
                    }
                }
            }
            return(View(model));
        }
Пример #4
0
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            var team = _teamsRepository.Get((int)id,
                                            includeRelatedEntities: false);

            if (team == null)
            {
                return(HttpNotFound());
            }

            var viewModel = new TeamsEditViewModel()
            {
                Team = team
            };

            viewModel.Init(Repository, _eventsRepository, _teamMembersRepository);

            return(View(viewModel));
        }