public async Task<ActionResult> Edit(Tag tag, IUpdateServiceAsync service) { if (!ModelState.IsValid) //model errors so return immediately return View(tag); var response = await service.UpdateAsync(tag); if (response.IsValid) { TempData["message"] = response.SuccessMessage; return RedirectToAction("Index"); } //else errors, so copy the errors over to the ModelState and return to view response.CopyErrorsToModelState(ModelState, tag); return View(tag); }
public void Check01ValidateTagOk() { using (var db = new SampleWebAppDb()) { //SETUP var snap = new DbSnapShot(db); //ATTEMPT var dupTag = new Tag { Name = "non-duplicate slug", Slug = Guid.NewGuid().ToString("N") }; db.Tags.Add(dupTag); var status = db.SaveChangesWithChecking(); //VERIFY status.IsValid.ShouldEqual(true, status.Errors); snap.CheckSnapShot(db, 0,0,0,1); } }
public void Check02ValidateTagError() { using (var db = new SampleWebAppDb()) { //SETUP var existingTag = db.Tags.First(); //ATTEMPT var dupTag = new Tag {Name = "duplicate slug", Slug = existingTag.Slug}; db.Tags.Add(dupTag); var status = db.SaveChangesWithChecking();; //VERIFY status.IsValid.ShouldEqual(false); status.Errors.Count.ShouldEqual(1); status.Errors[0].ErrorMessage.ShouldEqual("The Slug on tag 'duplicate slug' must be unique and is already being used."); } }