public async Task <SetPublishedMessageResponse> SetPublishedAsync([FromBody] SetPublishedMessageRequest request) { request.RequiredArgumentNotNull(nameof(request)); request.RequiredArgumnetNotNullAndNotDefaultValue <SetPublishedMessageRequest, Guid>(() => request.Id); var message = await _messageRepository.GetByIdAsync(id : request.Id); message.RequiredNotNull(nameof(message)); if (message.PublishedDateTime.HasValue == true) { return(new SetPublishedMessageResponse { IsSetPublished = false, PublishedDateTime = message.PublishedDateTime.Value, RowVersion = message.RowVersion }); } if (message.DateOfDelete.HasValue == true) { throw new InvalidOperationException($"message.DateOfDelete != null, message: {message.Serialize()}"); } message.PublishedDateTime = _dateTimeService.GetDateTimeNow(); await _messageRepository.UpdateAsync(message); return(new SetPublishedMessageResponse { IsSetPublished = true, RowVersion = message.RowVersion, PublishedDateTime = message.PublishedDateTime.Value }); }
public async Task <SetPublishedMessageResponse> SetPublishedAsync(SetPublishedMessageRequest request, [CallerMemberName] string callerMemberName = null) => await ExecutePostAsync <SetPublishedMessageResponse, SetPublishedMessageRequest>( path : "/api/message/set-published", request : request, callerMemberName : callerMemberName);