Exemplo n.º 1
0
        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));
            }
        }
Exemplo n.º 2
0
        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));
            }
        }
Exemplo n.º 3
0
        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));
            }
        }