public async Task <BaseApiResponse> Edit(EditAnnouncementRequest request) { request.CheckNotNull(nameof(request)); var command = new UpdateAnnouncementCommand( request.Title, request.Body ) { AggregateRootId = request.Id }; var result = await ExecuteCommandAsync(command); if (!result.IsSuccess()) { return(new BaseApiResponse { Code = 400, Message = "命令没有执行成功:{0}".FormatWith(result.GetErrorMessage()) }); } //添加操作记录 var currentAdmin = _contextService.GetCurrentAdmin(HttpContext.Current); RecordOperat(currentAdmin.AdminId.ToGuid(), "编辑公告", request.Id, request.Title); return(new BaseApiResponse()); }
public async Task <IActionResult> UpdateAnnouncementAsync([FromBody] UpdateAnnouncementRequest request) { if (GetAnnouncement(request.AnnouncementId).AuthorId != AuthorizedUser.Id) { Unauthorized(); } var command = new UpdateAnnouncementCommand(request.AnnouncementId, request.Title, request.ShortDescription, request.Description, request.Requirements, request.Tags); await commandBus.ExecuteAsync(command); return(Ok()); }
public async Task <BaseApiResponse> Edit(EditAnnouncementRequest request) { request.CheckNotNull(nameof(request)); var command = new UpdateAnnouncementCommand( request.Title, request.Body ) { AggregateRootId = request.Id }; var result = await ExecuteCommandAsync(command); if (!result.IsSuccess()) { return(new BaseApiResponse { Code = 400, Message = "命令没有执行成功:{0}".FormatWith(result.GetErrorMessage()) }); } return(new BaseApiResponse()); }
public async Task ShouldUpdateAnnouncementProperly() { //Arrange var tag = "tag"; var tagList = new List <string> { tag }; var repository = new Mock <IAnnouncementsRepository>(); var announcement = new Announcement(new Guid(), new Guid(), string.Empty, string.Empty, string.Empty, new List <string>(), new List <string>()); var dateUpdated = new DateTime(); repository.Setup(x => x.Get(It.IsAny <Guid>())).Returns(announcement); repository.Setup(x => x.UpdateAsync(It.IsAny <Announcement>())) .Callback <Announcement>(x => { dateUpdated = x.ChangedAt; announcement = x; }) .Returns(Task.CompletedTask); var updateAnnouncementHandler = new UpdateConversationHandler(repository.Object); var command = new UpdateAnnouncementCommand(new Guid(), "test", "test", "test", tags: tagList); //Act await updateAnnouncementHandler.HandleAsync(command); //Assert repository.Verify(x => x.Get(It.IsAny <Guid>()), Times.Once); repository.Verify(x => x.UpdateAsync(It.IsAny <Announcement>()), Times.Once); Assert.That(announcement.Description, Is.EqualTo((command.Description))); Assert.That(announcement.ShortDescription, Is.EqualTo(command.ShortDescription)); Assert.That(dateUpdated, Is.EqualTo(announcement.ChangedAt)); Assert.That(announcement.Tags.Any(x => x.Contains(tag)), Is.True); }
public void Handle(ICommandContext context, UpdateAnnouncementCommand command) { context.Get <Announcement>(command.AggregateRootId).Update(command.Title, command.Body); }
public async Task <ActionResult <string> > Update([FromBody] UpdateAnnouncementCommand command) { return(Ok(await Mediator.Send(command))); }