public ActionResult Edit(SnippetViewModel snippet) { try { if (ModelState.IsValid) { Snippet editedSnippet = _snippetService.GetSnippet(snippet.ID); editedSnippet.Name = snippet.Name.Trim(); editedSnippet.Description = snippet.Description.Trim(); editedSnippet.GroupName = snippet.GroupName.Trim(); editedSnippet.ProgrammingLanguageID = snippet.ProgrammingLanguageID; editedSnippet.Keys.Clear(); editedSnippet.Keys = _utilityService.ResolveKeys(snippet.Keys); editedSnippet.Website = snippet.Website; editedSnippet.Code = snippet.Code; try { _snippetService.SaveSnippet(); } catch (DbEntityValidationException ex) { var errorMessages = ex.EntityValidationErrors .SelectMany(x => x.ValidationErrors) .Select(x => x.ErrorMessage); // Join the list to a single string. var fullErrorMessage = string.Join("; ", errorMessages); // Combine the original exception message with the new one. var exceptionMessage = string.Concat(ex.Message, " The validation errors are: ", fullErrorMessage); // Throw a new DbEntityValidationException with the improved exception message. throw new DbEntityValidationException(exceptionMessage, ex.EntityValidationErrors); } SetLanguageTypes(snippet); return(View(snippet).WithSuccess(snippet.Name + " succesfully updated.")); } else { ModelState.AddModelError("", "Validation errors occured."); SetLanguageTypes(snippet); return(View(snippet)); } } catch (Exception ex) { SetLanguageTypes(snippet); return(View(snippet).WithError(ex.Message)); } }
public ActionResult CodeSnippet(SnippetViewModel snippet) { try { if (ModelState.IsValid) { Snippet newSnippet = new Snippet(); newSnippet.Name = snippet.Name.Trim(); newSnippet.Description = snippet.Description.Trim(); newSnippet.GroupName = snippet.GroupName.ToLower().Trim(); newSnippet.Keys = _utilityService.ResolveKeys(snippet.Keys); newSnippet.DateCreated = DateTime.Now; if (!string.IsNullOrEmpty(snippet.Website)) { newSnippet.Website = snippet.Website.Trim(); } newSnippet.Code = snippet.Code; newSnippet.ProgrammingLanguageID = snippet.ProgrammingLanguageID; try { _snippetService.CreateSnippet(newSnippet); _snippetService.SaveSnippet(); } catch (DbEntityValidationException ex) { var errorMessages = ex.EntityValidationErrors .SelectMany(x => x.ValidationErrors) .Select(x => x.ErrorMessage); // Join the list to a single string. var fullErrorMessage = string.Join("; ", errorMessages); // Combine the original exception message with the new one. var exceptionMessage = string.Concat(ex.Message, " The validation errors are: ", fullErrorMessage); // Throw a new DbEntityValidationException with the improved exception message. throw new DbEntityValidationException(exceptionMessage, ex.EntityValidationErrors); } SetLanguagesTypes(); return(RedirectToAction("Code", "Snippets", new { id = newSnippet.ID }) .WithSuccess(newSnippet.Name + " saved successfully.")); } else { ModelState.AddModelError("", "Validation errors occured."); SetLanguagesTypes(); return(View(snippet)); } } catch (Exception ex) { SetLanguagesTypes(); return(View(snippet).WithError(ex.Message)); } }