public async Task <ActionResult <Message> > SendMessage(Message message) { if (!(await _emailSender.SendEmailAsync(message))) { message.IsSent = false; } await _repository.CreateMessageAsync(message); return(CreatedAtAction( nameof(GetMessage), new { id = message.Id }, message)); }
public async Task <ResponseMessageDto> CreateMessageAsync(Guid boardId, Guid topicId, RequestMessageDto message) { var messageEntity = _mapper.Map <Message>(message); messageEntity.Id = Guid.NewGuid(); messageEntity.TopicId = topicId; var createdEntity = await _messageRepository.CreateMessageAsync(messageEntity); var responseDto = _mapper.Map <ResponseMessageDto>(createdEntity); return(responseDto); }
public async Task <MessageResponse> CreateMessageAsync(SaveMessageDTO messageDTO) { try { string sourceAddr = messageDTO.SourceAddr; string destAddr = messageDTO.DestinationAddr; Device sourceDevice = await _deviceRepository.GetByAddrAsync(sourceAddr); Device destDevice = await _deviceRepository.GetByAddrAsync(destAddr); if (sourceDevice == null || destDevice == null) { string messageStr; if (sourceDevice == null) { messageStr = DeviceNotFoundMessage(sourceAddr); } else { messageStr = DeviceNotFoundMessage(destAddr); } return(new MessageResponse(messageStr)); } Message message = new Message() { Content = messageDTO.Content, SourceAddr = sourceDevice, SourceAddrDeviceId = sourceDevice.DeviceId, DestinationAddr = destDevice, DestinationAddrDeviceId = destDevice.DeviceId }; //Save the message await _messageRepository.CreateMessageAsync(message); await _unitOfWork.CompleteAsync(); _inMemoryMessageService.AddMessage(destAddr, message); FromMessageDTO messageResource = _mapper.Map <Message, FromMessageDTO>(message); return(new MessageResponse(messageResource)); } catch (Exception ex) { // Do some logging stuff return(new MessageResponse($"An error occurred when saving the message: {ex.Message}")); } }
public async Task ExecuteAsync(UserCreateNewPaperCommand command) { var groupId = await _messageRepository.CreateMessageAsync(); await _bus.RaiseEventAsync(new UserCreateNewPaperEvent { ConnectionId = command.ConnectionId, GroupId = groupId }); }