public async Task <IActionResult> Put(string slug, [FromBody] EditStoryModel model) { if (false == ModelState.IsValid) { return(BadRequest(ModelState)); } var result = await mediator.Send( new EditStoryCommand(User, slug, model.Title, model.Content, model.IsPublic), HttpContext.RequestAborted ); if (false == result.IsSuccess()) { return(BadRequest(result.Exceptions)); } await commandBus.SendAsync(new StoryUpdatedIntegrationCommand { Id = Guid.NewGuid(), StoryId = result.Data.Id, Sent = dateTimeProvider.Now }); logger.StoryUpdated(result.Data.Id); if (slug != result.Data.Slug) { var url = Url.Action("Get", "Story", new { slug = result.Data.Slug }); } return(Ok(mapper.Map <StoryModel>(result.Data))); }
public void Can_Set_Author_On_Entity() { var story = new Story(); var model = new EditStoryModel(); people.Add(asimov); model.AuthorIds = new[] { asimov.Id }; mapper.MergeEntityWithModel(story, model); Assert.That(story.Authors.Single(), Is.EqualTo(asimov)); }
public void Save_Will_Call_NotifyItemWasChanged() { var story = new Story { Id = 42 }; var model = new EditStoryModel { Id = 42 }; repository.Add(story); controller.Save(model); Assert.That(repository.NotifyItemWasChangedLastCalledWith, Is.EqualTo(story)); }