public async Task <IActionResult> Add(Cat cat) { if (!ModelState.IsValid) { return(View(cat)); } try { dbContext.Cats.Add(cat); await dbContext.SaveChangesAsync(); } catch (DbUpdateException exception) { var innerException = exception.InnerException; if (innerException is SqlException && ((SqlException)innerException).Number == 2601) { var model = new ErrorViewModel() { Message = $"Cat '{cat.Name}', {cat.Age}-years-old {cat.Breed} has already been added!" }; return(View("Error", model)); } } return(Redirect("/")); }