public async Task <ActionResult <IEnumerable <Message> > > GetOutgoingMessagesAsync(string organizationId, [FromServices] IMessageMergeService messageMergeService, [FromServices] IElementsMessageRepository elementsMessageRepository, [FromServices] IDifiMessageRepository difiMessageRepository) { try { var difiMessagesList = await difiMessageRepository.GetDifiMessagesAsync(organizationId, Direction.OUTGOING); var elementsMessagesList = await elementsMessageRepository.GetElementsMessagesAsync(organizationId, Direction.OUTGOING); var combinedMessagesList = await messageMergeService.MergeMessagesListsOutAsync(organizationId, elementsMessagesList, difiMessagesList); if (combinedMessagesList.ToList().Count() == 0) { return(StatusCode(500)); } return(combinedMessagesList.ToList()); } catch (DifiException) { var elementsMessagesList = await elementsMessageRepository.GetElementsMessagesAsync(organizationId, Direction.INCOMING); var combinedMessagesList = await messageMergeService.MergeMessagesListsOutAsync(organizationId, elementsMessagesList, null); return(combinedMessagesList.ToList()); } catch (ElementsException) { return(null); } catch (Exception ex) { return(StatusCode(400, ex.Message)); } }
public async Task <ActionResult <IEnumerable <Message> > > GetMessagesBySenderIdAsync(string organizationId, string senderId, [FromServices] IMessageMergeService messageMergeService, [FromServices] IDifiMessageRepository difiMessageRepository, [FromServices] IElementsMessageRepository elementsMessageRepository) { try { var difiMessagesList = await difiMessageRepository.GetMessagesBySenderIdAsync(organizationId, senderId); var elementsMessagesList = await elementsMessageRepository.GetElementsMessagesBySenderIdAsync(organizationId, senderId); var combinedMessages = await messageMergeService.MergeMessagesListsInAsync(organizationId, difiMessagesList, elementsMessagesList); if (combinedMessages.ToList().Count() == 0) { return(StatusCode(500)); } return(combinedMessages.ToList()); } catch (DifiException) { return(null); } catch (ElementsException) { var difiMessagesList = await difiMessageRepository.GetMessagesBySenderIdAsync(organizationId, senderId); var combinedMessagesList = await messageMergeService.MergeMessagesListsInAsync(organizationId, difiMessagesList, null); return(combinedMessagesList.ToList()); } catch (Exception ex) { return(StatusCode(400, ex.Message)); } }
public async Task <ActionResult <Message> > GetMessageAsync(string organizationId, string msgId, [FromServices] IMessageMergeService messageMergeService, [FromServices] IDifiMessageRepository difiMessageRepository, [FromServices] IElementsMessageRepository elementsMessageRepository) { try { var difiMessage = await difiMessageRepository.GetDifiMessageAsync(organizationId, msgId); var elementsMessage = await elementsMessageRepository.GetElementsMessageAsync(organizationId, msgId); var combinedMessage = messageMergeService.MergeMessages(difiMessage, elementsMessage); if (difiMessage == null && elementsMessage == null || combinedMessage == null) { return(StatusCode(500)); } return(combinedMessage); } catch (DifiException) { var elementsMessagesList = await elementsMessageRepository.GetElementsMessageAsync(organizationId, msgId); var combinedMessage = messageMergeService.MergeMessages(null, elementsMessagesList); return(combinedMessage); } catch (ElementsException) { var difiMessagesList = await difiMessageRepository.GetDifiMessageAsync(organizationId, msgId); var combinedMessage = messageMergeService.MergeMessages(difiMessagesList, null); return(combinedMessage); } catch (Exception ex) { return(StatusCode(400, ex.Message)); } }