public ActionResult Update(viewModels.EditTournamentViewModel Model, int TournamentID = -1, string Update = null, string Delete = null, string Cancel = null) { if (TournamentID == -1) { logger.Warn("Tournament with id = " + TournamentID + " not found"); throw new HttpException(404, "Tournament not found"); } if (Delete != null) return DeleteTournament(TournamentID); if (Cancel != null) return CancelTournament(); if (Update != null) return UpdateTournament(Model, TournamentID); return CancelTournament(); }
private ActionResult UpdateTournament(viewModels.EditTournamentViewModel Model, int TournamentID = -1) { try { Tournament tournament = repository.Tournaments.FirstOrDefault(t => t.TournamentID == TournamentID); if (tournament == null) { logger.Warn("Problem with id = " + TournamentID + " not found"); throw new HttpException(404, "Tournament not found"); } tournament.Name = Model.Name; tournament.Format = (TournamentFormats)Model.TournamentFormatsListID; tournament.Type = (TournamentTypes)Model.TournamentTypesListID; tournament.ShowSolutionSendingTime = Model.ShowSolutionSendingTime; tournament.ShowTimer = Model.ShowTimer; tournament.StartDate = Model.StartDate.Add(Model.StartTime.TimeOfDay); tournament.EndDate = Model.EndDate.Add(Model.EndTime.TimeOfDay); repository.AddTournament(tournament); if (tournament.Type == TournamentTypes.Close) { repository.BindUserToTournament(tournament.TournamentID, WebSecurity.GetUserId(User.Identity.Name)); } TempData["SuccessMessage"] = "Турнир успешно обновлен!"; logger.Info("User " + WebSecurity.GetUserId(User.Identity.Name) + " \"" + User.Identity.Name + "\" update tournament \"" + TournamentID + "\""); } catch (Exception ex) { TempData["ErrorMessage"] = "Произошла ошибка при обновлении турнира."; logger.Error("Error occured on user " + WebSecurity.GetUserId(User.Identity.Name) + " \"" + User.Identity.Name + "\" updating tournament \"" + TournamentID + "\": ", ex); } return RedirectToAction("Update", new { TournamentID = TournamentID }); }
public ActionResult Create(viewModels.NewTournamentViewModel Model) { if (ModelState.IsValid) { int tournamentID = -1; // Attempt to create new tournament try { Tournament tournament = new Tournament { Name = Model.Name, Type = (TournamentTypes)Model.TournamentTypesListID, Format = (TournamentFormats)Model.TournamentFormatsListID, ShowSolutionSendingTime = Model.ShowSolutionSendingTime, ShowTimer = Model.ShowTimer, StartDate = Model.StartDate.Add(Model.StartTime.TimeOfDay), EndDate = Model.EndDate.Add(Model.EndTime.TimeOfDay) }; int userID = WebSecurity.CurrentUserId; if (userID != 1) { UserProfile user = repository.Users.FirstOrDefault(u => u.UserId == userID); tournament.UsersCanModify = new List<UserProfile>(); tournament.UsersCanModify.Add(user); } tournamentID = repository.AddTournament(tournament); if (tournament.Type == TournamentTypes.Close) { repository.BindUserToTournament(tournament.TournamentID, WebSecurity.GetUserId(User.Identity.Name)); } logger.Info("User " + WebSecurity.GetUserId(User.Identity.Name) + " \"" + User.Identity.Name + "\" create tournament " + tournamentID + " \"" + Model.Name + "\""); return RedirectToAction("BindProblemsToTournament", new { tournamentID = tournament.TournamentID }); } catch (Exception ex) { logger.Error("Error occurred on user " + WebSecurity.GetUserId(User.Identity.Name) + " \"" + User.Identity.Name + "\" creating tournament " + tournamentID + " \"" + Model.Name + "\": ", ex); ModelState.AddModelError("", "Произошла ошибка при создании турнира"); } } return View(Model); }