public IActionResult Edit(Guid id, [Bind("Name, Description")] CharacterEditModel characterEditModel) { var characterToBeEdited = _repository.GetCharacterById(id); if (characterToBeEdited == null) { return(NotFound()); } if (!ModelState.IsValid) { return(View(characterEditModel)); } characterToBeEdited.Name = characterEditModel.Name; characterToBeEdited.Description = characterEditModel.Description; try { _repository.EditCharacter(characterToBeEdited); } catch (DbUpdateConcurrencyException) { if (!CharacterExists(_repository.GetCharacterById(id).Id)) { return(NotFound()); } throw; } return(RedirectToAction(nameof(Index))); }
public JsonResult Edit(CharacterEditModel model) { var objectId = ObjectId.GenerateNewId(); if (!string.IsNullOrEmpty(model.ID) && !ObjectId.TryParse(model.ID, out objectId)) { return(Json(new { Code = 300, Msg = "ID is not allowed." })); } if (string.IsNullOrEmpty(model.Name)) { return(Json(new { Code = 300, Msg = "Name is not allowed to be empty." })); } var mongo = new MongoHelper(); var pinyin = PinYinHelper.GetTotalPinYin(model.Name); var filter = Builders <BsonDocument> .Filter.Eq("ID", objectId); var update1 = Builders <BsonDocument> .Update.Set("Name", model.Name); var update2 = Builders <BsonDocument> .Update.Set("TotalPinYin", pinyin.TotalPinYin); var update3 = Builders <BsonDocument> .Update.Set("FirstPinYin", pinyin.FirstPinYin); var update4 = Builders <BsonDocument> .Update.Set("Thumbnail", model.Thumbnail); UpdateDefinition <BsonDocument> update5; if (string.IsNullOrEmpty(model.Category)) { update5 = Builders <BsonDocument> .Update.Unset("Category"); } else { update5 = Builders <BsonDocument> .Update.Set("Category", model.Category); } var update = Builders <BsonDocument> .Update.Combine(update1, update2, update3, update4, update5); mongo.UpdateOne(Constant.CharacterCollectionName, filter, update); return(Json(new { Code = 200, Msg = "Saved successfully!" })); }
public ActionResult Edit(CharacterEditModel model) { var operationResult = characterOperationService.Save(model); if (operationResult.IsValid) { return(RedirectToAction("Index")); } operationResult.ToModelErrors(ModelState); return(View(model)); }
internal static void MapTo(this CharacterEditModel model, ref Character entity) { if (model.Id == Guid.Empty) { entity.Id = Guid.NewGuid(); entity.Created = DateTime.Now; } entity.Name = model.Name; entity.Price = model.Price; entity.Type = model.Type; entity.Active = model.Active; }
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); }
public IActionResult Create(CharacterEditModel model) { if (ModelState.IsValid) { var subrace = _subraceData.Get(model.Subrace); var alignment = _alignmentData.Get(model.Alignment); var _class = _classData.Get(model.Class); var newCharacter = new Character() { Name = model.Name, Alignment = alignment, Subrace = subrace, Level = model.Level, Experience = model.Experience, Speed = subrace.Speed, Class = _class, Strength = subrace.Strength + subrace.Race.Strength, Wisdom = subrace.Wisdom + subrace.Race.Wisdom, Intelligence = subrace.Intelligence + subrace.Race.Intelligence, Dexterity = subrace.Dexterity + subrace.Race.Dexterity, Constitution = subrace.Constitution + subrace.Race.Constitution, Charisma = subrace.Charisma + subrace.Race.Charisma }; newCharacter = _characterData.Add(newCharacter); return(RedirectToAction(nameof(Details), new { id = newCharacter.Id })); } else { var viewModel = new CharacterInputModel() { Subraces = _subraceData.GetAllPlayable(), Alignments = _alignmentData.GetAll(), Classes = _classData.GetAll() }; return(View(viewModel)); } }
// GET: Characters/Edit/5 public IActionResult Edit(Guid?id) { if (id == null) { return(NotFound()); } var character = _repository.GetCharacterById(id.Value); if (character == null) { return(NotFound()); } var characterEditModel = new CharacterEditModel( character.Name, character.Description ); return(View(characterEditModel)); }
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()); }