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) { this.TempData["DangerMessage"] = "Задачата не е намерена"; return this.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 this.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 (resource.Type == ProblemResourceType.Video && string.IsNullOrEmpty(resource.Link)) { this.ModelState.AddModelError("Link", Resource.Link_not_empty); } else if (resource.Type != ProblemResourceType.Video && (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.Video) { newResource.Link = resource.Link; } 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) { this.TempData[GlobalConstants.DangerMessage] = "Ресурсът е невалиден"; return this.RedirectToAction("Resource", "Problems", new { id }); } if (resource.Type == ProblemResourceType.Video && string.IsNullOrEmpty(resource.Link)) { this.ModelState.AddModelError("Link", "Линкът не може да бъде празен"); } else if (resource.Type != ProblemResourceType.Video && (resource.File == null || resource.File.ContentLength == 0)) { this.ModelState.AddModelError("File", "Файлът е задължителен"); } if (this.ModelState.IsValid) { var problem = this.Data.Problems .All() .FirstOrDefault(x => x.Id == id); if (problem == null) { this.TempData[GlobalConstants.DangerMessage] = "Задачата не е намерена"; return this.RedirectToAction(GlobalConstants.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 this.RedirectToAction("Resource", "Problems", new { id }); } resource.AllTypes = EnumConverter.GetSelectListItems<ProblemResourceType>(); return this.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"); } 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 Edit(int? id, ProblemResourceViewModel resource) { if (id == null) { this.TempData["DangerMessage"] = "Задачата не е намерена"; return this.RedirectToAction("Index", "Problems"); } if (ModelState.IsValid) { var existingResource = this.Data.Resources .All() .FirstOrDefault(res => res.Id == id); if (existingResource == null) { this.TempData["DangerMessage"] = "Ресурсът не е намерен"; return this.RedirectToAction("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 = this.GetAllResourceTypes(); return this.View(resource); }