public ActionResult Edit(CharacterEditModel model) { var operationResult = characterOperationService.Save(model); if (operationResult.IsValid) { return RedirectToAction("Index"); } operationResult.ToModelErrors(ModelState); return View(model); }
public void Save_should_create_new_character() { var validationService = new Mock<IValidationService>(); validationService.Setup(x => x.Validate(It.IsAny<CharacterEditModel>())).Returns(new List<ValidationError>()); var characterDao = new Mock<ICharacterDao>(); ICharacterOperationService operationService = new CharacterOperationService(validationService.Object, characterDao.Object); var model = new CharacterEditModel {Name = "Zeratul"}; var result = operationService.Save(model); Assert.IsTrue(result.IsValid); characterDao.Verify(x => x.Load(It.IsAny<Guid>()), Times.Never); characterDao.Verify(x => x.Save(It.Is<Character>(c => ReferenceEquals(c.Name, model.Name))), Times.Once); }
ValidationResult ICharacterOperationService.Save(CharacterEditModel model) { var validaitonErrors = validationService.Validate(model); if (validaitonErrors.Any()) { return new ValidationResult(validaitonErrors); } var character = model.Id == Guid.Empty ? new Character() : characterDao.Load(model.Id); if (character == null) { throw new InvalidOperationException("Character does not exist anymore"); } model.MapTo(ref character); characterDao.Save(character); return ValidationResult.Ok; }
public ActionResult Add(CharacterEditModel model) { return Edit(model); }
ICollection<ValidationError> IValidationService.Validate(CharacterEditModel model) { return characterEditModelValidator.Validate(model).Errors.ToValidationResultItem(); }