public ActionResult Edit(int id) { if (!this.CheckIfUserHasContestPermissions(id)) { this.TempData[GlobalConstants.DangerMessage] = "Нямате привилегиите за това действие"; return(this.RedirectToAction("Index", "Contests", new { area = "Administration" })); } var contest = this.Data.Contests .All() .Where(con => con.Id == id) .Select(ContestAdministrationViewModel.ViewModel) .FirstOrDefault(); if (contest == null) { this.TempData.Add(GlobalConstants.DangerMessage, Resource.Contest_not_found); return(this.RedirectToAction(GlobalConstants.Index)); } this.Data.SubmissionTypes.All() .Select(SubmissionTypeViewModel.ViewModel) .ForEach(SubmissionTypeViewModel.ApplySelectedTo(contest)); this.PrepareViewBagData(); return(this.View(contest)); }
public ActionResult Edit(int?id) { if (id == null) { this.TempData.AddDangerMessage(GlobalResource.Invalid_problem); return(this.RedirectToAction(c => c.Index())); } if (!this.CheckIfUserHasProblemPermissions(id.Value)) { return(this.RedirectToContestsAdminPanelWithNoPrivilegesMessage()); } var selectedProblem = this.PrepareProblemViewModelForEdit(id.Value); if (selectedProblem == null) { this.TempData.AddDangerMessage(GlobalResource.Invalid_problem); return(this.RedirectToAction(c => c.Index())); } this.submissionTypesData .GetAll() .Select(SubmissionTypeViewModel.ViewModel) .ForEach(SubmissionTypeViewModel.ApplySelectedTo(selectedProblem)); return(this.View(selectedProblem)); }
public ActionResult Edit(int?id) { if (id == null) { this.TempData.AddDangerMessage(GlobalResource.Invalid_problem); return(this.RedirectToAction(nameof(this.Index))); } if (!this.CheckIfUserHasProblemPermissions(id.Value)) { this.TempData.AddDangerMessage(GlobalConstants.NoPrivilegesMessage); return(this.RedirectToAction("Index", "Contests", new { area = "Administration" })); } var selectedProblem = this.PrepareProblemViewModelForEdit(id.Value); if (selectedProblem == null) { this.TempData.AddDangerMessage(GlobalResource.Invalid_problem); return(this.RedirectToAction(nameof(this.Index))); } this.Data.SubmissionTypes.All() .Select(SubmissionTypeViewModel.ViewModel) .ForEach(SubmissionTypeViewModel.ApplySelectedTo(selectedProblem)); return(this.View(selectedProblem)); }
public ActionResult Edit(int id) { var contest = this.Data.Contests .All() .Where(con => con.Id == id) .Select(ContestAdministrationViewModel.ViewModel) .FirstOrDefault(); if (contest == null) { this.TempData.Add(GlobalConstants.DangerMessage, Resource.Contest_not_found); return(this.RedirectToAction(GlobalConstants.Index)); } this.Data.SubmissionTypes.All() .Select(SubmissionTypeViewModel.ViewModel) .ForEach(SubmissionTypeViewModel.ApplySelectedTo(contest)); return(this.View(contest)); }
public ActionResult Edit(int id, ViewModelType problem) { if (!this.CheckIfUserHasProblemPermissions(id)) { return(this.RedirectToContestsAdminPanelWithNoPrivilegesMessage()); } var existingProblem = this.problemsData.GetWithProblemGroupById(id); if (existingProblem == null) { this.TempData.Add(GlobalConstants.DangerMessage, GlobalResource.Problem_not_found); return(this.RedirectToAction(c => c.Index())); } if (problem == null) { problem = this.PrepareProblemViewModelForEdit(id); this.AddCheckersToProblemViewModel(problem); return(this.View(problem)); } if (problem.AdditionalFiles != null && problem.AdditionalFiles.ContentLength != 0) { this.ValidateUploadedFile(nameof(problem.AdditionalFiles), problem.AdditionalFiles); } if (!this.ModelState.IsValid) { problem = this.PrepareProblemViewModelForEdit(id); this.AddCheckersToProblemViewModel(problem); this.submissionTypesData .GetAll() .Select(SubmissionTypeViewModel.ViewModel) .ForEach(SubmissionTypeViewModel.ApplySelectedTo(problem)); return(this.View(problem)); } existingProblem = problem.GetEntityModel(existingProblem); existingProblem.Checker = this.checkersData.GetByName(problem.Checker); existingProblem.SolutionSkeleton = problem.SolutionSkeletonData; existingProblem.SubmissionTypes.Clear(); existingProblem.ProblemGroup.Type = ((ProblemGroupType?)problem.ProblemGroupType).GetValidTypeOrNull(); if (!existingProblem.ProblemGroup.Contest.IsOnline) { existingProblem.ProblemGroup.OrderBy = problem.OrderBy; } if (problem.AdditionalFiles != null && problem.AdditionalFiles.ContentLength != 0) { using (var archiveStream = new MemoryStream()) { problem.AdditionalFiles.InputStream.CopyTo(archiveStream); existingProblem.AdditionalFiles = archiveStream.ToArray(); } } problem.SubmissionTypes.ForEach(s => { if (s.IsChecked && s.Id.HasValue) { var submission = this.submissionTypesData.GetById(s.Id.Value); existingProblem.SubmissionTypes.Add(submission); } }); this.problemsData.Update(existingProblem); this.TempData.AddInfoMessage(GlobalResource.Problem_edited); return(this.RedirectToAction(c => c.Index(existingProblem.ProblemGroup.ContestId))); }
public ActionResult Edit(int id, DetailedProblemViewModel problem) { if (!this.CheckIfUserHasProblemPermissions(id)) { this.TempData.AddDangerMessage(GlobalConstants.NoPrivilegesMessage); return(this.RedirectToAction("Index", "Contests", new { area = "Administration" })); } var existingProblem = this.Data.Problems.All().FirstOrDefault(x => x.Id == id); if (existingProblem == null) { this.TempData.Add(GlobalConstants.DangerMessage, GlobalResource.Problem_not_found); return(this.RedirectToAction(nameof(this.Index))); } if (problem == null) { problem = this.PrepareProblemViewModelForEdit(id); problem.AvailableCheckers = this.Data.Checkers.All() .Select(checker => new SelectListItem { Text = checker.Name, Value = checker.Name }); return(this.View(problem)); } if (problem.AdditionalFiles != null && problem.AdditionalFiles.ContentLength != 0) { this.ValidateUploadedFile(nameof(problem.AdditionalFiles), problem.AdditionalFiles); } if (!this.ModelState.IsValid) { problem = this.PrepareProblemViewModelForEdit(id); problem.AvailableCheckers = this.Data.Checkers.All() .Select(checker => new SelectListItem { Text = checker.Name, Value = checker.Name }); this.Data.SubmissionTypes.All() .Select(SubmissionTypeViewModel.ViewModel) .ForEach(SubmissionTypeViewModel.ApplySelectedTo(problem)); return(this.View(problem)); } existingProblem = problem.GetEntityModel(existingProblem); existingProblem.Checker = this.Data.Checkers.All().FirstOrDefault(x => x.Name == problem.Checker); existingProblem.SolutionSkeleton = problem.SolutionSkeletonData; existingProblem.SubmissionTypes.Clear(); if (problem.AdditionalFiles != null && problem.AdditionalFiles.ContentLength != 0) { using (var archiveStream = new MemoryStream()) { problem.AdditionalFiles.InputStream.CopyTo(archiveStream); existingProblem.AdditionalFiles = archiveStream.ToArray(); } } problem.SubmissionTypes.ForEach(s => { if (s.IsChecked) { var submission = this.Data.SubmissionTypes.All().FirstOrDefault(t => t.Id == s.Id); existingProblem.SubmissionTypes.Add(submission); } }); this.Data.Problems.Update(existingProblem); this.Data.SaveChanges(); this.TempData.AddInfoMessage(GlobalResource.Problem_edited); return(this.RedirectToAction("Contest", new { id = existingProblem.ContestId })); }