public ActionResult Create(int id) { var problem = this.Data.Problems.All().FirstOrDefault(pr => pr.Id == id); if (problem == null) { this.TempData.AddDangerMessage(Resource.Problem_not_found); return(this.RedirectToAction(GlobalConstants.Index, "Problems")); } int orderBy; var resources = problem.Resources.Where(res => !res.IsDeleted); if (!resources.Any()) { orderBy = 0; } else { orderBy = resources.Max(res => res.OrderBy) + 1; } var resource = new ProblemResourceViewModel { ProblemId = id, ProblemName = problem.Name, OrderBy = orderBy, AllTypes = EnumConverter.GetSelectListItems <ProblemResourceType>() }; return(this.View(resource)); }
public ActionResult Create(int id) { var problem = this.Data.Problems.All().FirstOrDefault(pr => pr.Id == id); if (problem == null) { TempData["DangerMessage"] = "Задачата не е намерене"; return(RedirectToAction("Index", "Problems")); } int orderBy; var resources = problem.Resources.Where(res => !res.IsDeleted); if (resources == null || resources.Count() == 0) { orderBy = 0; } else { orderBy = resources.Max(res => res.OrderBy) + 1; } var resource = new ProblemResourceViewModel { ProblemId = id, ProblemName = problem.Name, OrderBy = orderBy, AllTypes = this.GetAllResourceTypes() }; return(View(resource)); }
public ActionResult Create(int id, ProblemResourceViewModel resource) { if (resource == null) { this.TempData.AddDangerMessage(Resource.Invalid_resource); return(this.RedirectToAction("Resource", "Problems", new { id })); } if (!this.CheckIfUserHasProblemPermissions(id)) { return(this.RedirectToContestsAdminPanelWithNoPrivilegesMessage()); } if (resource.Type == ProblemResourceType.Link && string.IsNullOrEmpty(resource.RawLink)) { this.ModelState.AddModelError("Link", Resource.Link_not_empty); } else if (resource.Type != ProblemResourceType.Link && (resource.File == null || resource.File.ContentLength == 0)) { this.ModelState.AddModelError("File", Resource.File_required); } if (this.ModelState.IsValid) { var problem = this.Data.Problems .All() .FirstOrDefault(x => x.Id == id); if (problem == null) { this.TempData.AddDangerMessage(Resource.Problem_not_found); return(this.RedirectToAction(GlobalConstants.Index, "Problems")); } var newResource = new ProblemResource { Name = resource.Name, Type = resource.Type, OrderBy = resource.OrderBy, }; if (resource.Type == ProblemResourceType.Link) { newResource.Link = resource.RawLink; } else { newResource.File = resource.File.InputStream.ToByteArray(); newResource.FileExtension = resource.FileExtension; } problem.Resources.Add(newResource); this.Data.SaveChanges(); return(this.RedirectToAction("Resource", "Problems", new { id })); } resource.AllTypes = EnumConverter.GetSelectListItems <ProblemResourceType>(); return(this.View(resource)); }
public ActionResult Create(int id, ProblemResourceViewModel resource) { if (resource == null) { TempData["DangerMessage"] = "Ресурсът е невалиден"; return(RedirectToAction("Resource", "Problems", new { id = id })); } if (resource.Type == ProblemResourceType.Video && string.IsNullOrEmpty(resource.Link)) { ModelState.AddModelError("Link", "Линкът не може да бъде празен"); } else if (resource.Type != ProblemResourceType.Video && (resource.File == null || resource.File.ContentLength == 0)) { ModelState.AddModelError("File", "Файлът е задължителен"); } if (ModelState.IsValid) { var problem = this.Data.Problems .All() .FirstOrDefault(x => x.Id == id); if (problem == null) { TempData["DangerMessage"] = "Задачата не е намерена"; return(RedirectToAction("Index", "Problems")); } var newResource = new ProblemResource { Name = resource.Name, Type = resource.Type, OrderBy = resource.OrderBy, }; if (resource.Type == ProblemResourceType.Video) { newResource.Link = resource.Link; } else { newResource.File = resource.File.InputStream.ToByteArray(); newResource.FileExtension = resource.FileExtension; } problem.Resources.Add(newResource); this.Data.SaveChanges(); return(RedirectToAction("Resource", "Problems", new { id = id })); } resource.AllTypes = this.GetAllResourceTypes(); return(View(resource)); }
public ActionResult Edit(int?id, ProblemResourceViewModel resource) { if (id == null) { TempData["DangerMessage"] = "Задачата не е намерена"; return(RedirectToAction("Index", "Problems")); } if (resource.Type == ProblemResourceType.Video && string.IsNullOrEmpty(resource.Link)) { ModelState.AddModelError("Link", "Линкът не може да бъде празен"); } else if (resource.Type != ProblemResourceType.Video && (resource.File == null || resource.File.ContentLength == 0)) { ModelState.AddModelError("File", "Файлът е задължителен"); } if (ModelState.IsValid) { var existingResource = this.Data.Resources .All() .FirstOrDefault(res => res.Id == id); if (existingResource == null) { TempData["DangerMessage"] = "Ресурсът не е намерен"; return(RedirectToAction("Index", "Problems")); } existingResource.Name = resource.Name; existingResource.Type = resource.Type; existingResource.OrderBy = resource.OrderBy; if (existingResource.Type == ProblemResourceType.Video) { existingResource.Link = resource.Link; } else { existingResource.File = resource.File.InputStream.ToByteArray(); existingResource.FileExtension = resource.FileExtension; } this.Data.SaveChanges(); return(RedirectToAction("Resource", "Problems", new { id = existingResource.ProblemId })); } resource.AllTypes = this.GetAllResourceTypes(); return(View(resource)); }
// TODO: Transfer to ResourcesController public ActionResult AddResourceForm(int id) { // TODO: Add validation for Id var resourceViewModel = new ProblemResourceViewModel { Id = id, AllTypes = Enum.GetValues(typeof(ProblemResourceType)).Cast <ProblemResourceType>().Select(v => new SelectListItem { Text = v.GetDescription(), Value = ((int)v).ToString() }) }; return(this.PartialView("_ProblemResourceForm", resourceViewModel)); }
public ActionResult Edit(int?id, ProblemResourceViewModel resource) { if (id == null) { this.TempData.AddDangerMessage(Resource.Problem_not_found); return(this.RedirectToAction(GlobalConstants.Index, "Problems")); } if (this.ModelState.IsValid) { var existingResource = this.Data.Resources .All() .FirstOrDefault(res => res.Id == id); if (existingResource == null) { this.TempData.AddDangerMessage(Resource.Resource_not_found); return(this.RedirectToAction(GlobalConstants.Index, "Problems")); } if (!this.CheckIfUserHasProblemPermissions(existingResource.ProblemId)) { this.TempData[GlobalConstants.DangerMessage] = "Нямате привилегиите за това действие"; return(this.RedirectToAction("Index", "Contests", new { area = "Administration" })); } existingResource.Name = resource.Name; existingResource.Type = resource.Type; existingResource.OrderBy = resource.OrderBy; if (existingResource.Type == ProblemResourceType.Link && !string.IsNullOrEmpty(resource.RawLink)) { existingResource.Link = resource.RawLink; } else if (resource.Type != ProblemResourceType.Link && resource.File != null && resource.File.ContentLength > 0) { existingResource.File = resource.File.InputStream.ToByteArray(); existingResource.FileExtension = resource.FileExtension; } this.Data.SaveChanges(); return(this.RedirectToAction("Resource", "Problems", new { id = existingResource.ProblemId })); } resource.AllTypes = EnumConverter.GetSelectListItems <ProblemResourceType>(); return(this.View(resource)); }
public ActionResult Edit(int?id, ProblemResourceViewModel resource) { if (id == null) { this.TempData[GlobalConstants.DangerMessage] = "Задачата не е намерена"; return(this.RedirectToAction(GlobalConstants.Index, "Problems")); } if (this.ModelState.IsValid) { var existingResource = this.Data.Resources .All() .FirstOrDefault(res => res.Id == id); if (existingResource == null) { this.TempData[GlobalConstants.DangerMessage] = "Ресурсът не е намерен"; return(this.RedirectToAction(GlobalConstants.Index, "Problems")); } existingResource.Name = resource.Name; existingResource.Type = resource.Type; existingResource.OrderBy = resource.OrderBy; if (existingResource.Type == ProblemResourceType.Video && !string.IsNullOrEmpty(resource.Link)) { existingResource.Link = resource.Link; } else if (resource.Type != ProblemResourceType.Video && resource.File != null && resource.File.ContentLength > 0) { existingResource.File = resource.File.InputStream.ToByteArray(); existingResource.FileExtension = resource.FileExtension; } this.Data.SaveChanges(); return(this.RedirectToAction("Resource", "Problems", new { id = existingResource.ProblemId })); } resource.AllTypes = EnumConverter.GetSelectListItems <ProblemResourceType>(); return(this.View(resource)); }
public ActionResult Create(int id) { if (!this.CheckIfUserHasProblemPermissions(id)) { this.TempData[GlobalConstants.DangerMessage] = "Нямате привилегиите за това действие"; return(this.RedirectToAction("Index", "Contests", new { area = "Administration" })); } var problem = this.Data.Problems.All().FirstOrDefault(pr => pr.Id == id); if (problem == null) { this.TempData.AddDangerMessage(Resource.Problem_not_found); return(this.RedirectToAction(GlobalConstants.Index, "Problems")); } int orderBy; var resources = problem.Resources.Where(res => !res.IsDeleted); if (!resources.Any()) { orderBy = 0; } else { orderBy = resources.Max(res => res.OrderBy) + 1; } var resource = new ProblemResourceViewModel { ProblemId = id, ProblemName = problem.Name, OrderBy = orderBy, AllTypes = EnumConverter.GetSelectListItems <ProblemResourceType>() }; return(this.View(resource)); }