public ActionResult EditProject(string name) { if (string.IsNullOrWhiteSpace(name)) return View("Error", new ErrorInfo("Project", "EditProject", "The project name is null, empty or contains only whitespace which is not allowed.")); Project project; using (var db = new BuildVersioningDataContext()) { project = db.Projects .SingleOrDefault(p => string.Compare(p.Name, name, StringComparison.OrdinalIgnoreCase) == 0 ); } if (null == project) return View("Error"); var model = new EditProjectModel { BuildNumber = project.BuildNumber, Description = project.Description, Id = project.Id, Name = project.Name }; return View(model); }
public ActionResult EditProject(string name, EditProjectModel editProject) { if (null == editProject) return View("Error", new ErrorInfo("Project", "EditProject", "The editProject model is null which is not allowed.")); var id = editProject.Id; if (id < 1) return View("Error", new ErrorInfo("Project", "EditProject", "The project id is not valid.")); var newName = editProject.Name; if (string.IsNullOrWhiteSpace(newName)) return View("Error", new ErrorInfo("Project", "EditProject", "The new project name is null, empty or contains only whitespace which is not allowed.")); var desc = editProject.Description; if (string.IsNullOrWhiteSpace(desc)) desc = null; var buildNumber = editProject.BuildNumber; if (buildNumber < 0) buildNumber = 0; using (var db = new BuildVersioningDataContext()) { if (name != newName && db.Projects.Any(p => string.Compare(p.Name, newName, StringComparison.OrdinalIgnoreCase) == 0)) return View("Error", new ErrorInfo("Project", "EditProject", "A project with the specified new name already exists.")); var project = db.Projects.SingleOrDefault(p => p.Id == id); if (null == project) return View("Error", new ErrorInfo("Project", "EditProject", "The specified project id of the project to be edited does not exist.")); project.Name = newName; project.Description = desc; if (project.BuildNumber != buildNumber) { project.BuildNumber = buildNumber; project.DateBuildNumberUpdated = DateTime.Now; } db.SaveChanges(); } return RedirectToRoute("ViewProject", new { name }); }