public async Task <FromMessageDTO> GetById(long id) { Message message = await _messageRepository.GetByIdAsync(id); FromMessageDTO resource = _mapper.Map <Message, FromMessageDTO>(message); return(resource); }
public async Task <ActionResult <FromMessageDTO> > GetById(long id) { FromMessageDTO messageDTO = await _messageService.GetById(id); if (messageDTO == null) { return(NotFound()); } return(messageDTO); }
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 <MessageResponse> UpdateMessageAsync(long id, SaveMessageDTO messageDTO) { Message foundMessage = await _messageRepository.GetByIdAsync(id); if (foundMessage == null) { return(new MessageResponse($"Message with id: {id} does not exist")); } 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)); } try { //Update all the fields foundMessage.Content = messageDTO.Content; foundMessage.SourceAddr = sourceDevice; foundMessage.SourceAddrDeviceId = sourceDevice.DeviceId; foundMessage.DestinationAddr = destDevice; foundMessage.DestinationAddrDeviceId = destDevice.DeviceId; _messageRepository.UpdateMessageAsync(foundMessage); await _unitOfWork.CompleteAsync(); FromMessageDTO messageResource = _mapper.Map <Message, FromMessageDTO>(foundMessage); return(new MessageResponse(messageResource)); } catch (Exception ex) { return(new MessageResponse($"An error occurred when saving the message: {ex.Message}")); } }
public IEnumerable <FromMessageDTO> ExtractMessagesForDestDeviceFromMessageMem(string deviceAddr) { ConcurrentQueue <Message> messages = _inMemoryMessageService.ExtractMessagesForAddress(deviceAddr); if (messages == null) { return(null); } List <FromMessageDTO> messageDTOList = new List <FromMessageDTO>(); foreach (Message message in messages) { FromMessageDTO messageResource = _mapper.Map <Message, FromMessageDTO>(message); messageDTOList.Add(messageResource); } return(messageDTOList); }
public async Task <MessageResponse> DeleteMessageAsync(long id) { Message foundMessage = await _messageRepository.GetByIdAsync(id); if (foundMessage == null) { return(new MessageResponse($"Message with id: {id} does not exist")); } try { _messageRepository.DeleteMessageAsync(foundMessage); await _unitOfWork.CompleteAsync(); FromMessageDTO messageResource = _mapper.Map <Message, FromMessageDTO>(foundMessage); return(new MessageResponse(messageResource)); } catch (Exception ex) { return(new MessageResponse($"An error occurred when deleting the message: {ex.Message}")); } }
/// <summary> /// Creates a success response. /// </summary> /// <param name="message">Saved message.</param> /// <returns>Response.</returns> public MessageResponse(FromMessageDTO messageDTO) : this(true, string.Empty, messageDTO) { }
private MessageResponse(bool success, string message, FromMessageDTO messageDTO) : base(success, message) { MessageDTO = messageDTO; }