示例#1
0
        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));
        }