public Task BatchAddMessages(MessageContext context, BatchAddMessagesEvent inputEvent)
 {
     foreach (var message in inputEvent.Messages)
     {
         usersRepository.AddMessage(message.UserId, message.Content);
     }
     return(Task.CompletedTask);
 }
示例#2
0
        public Task Process(BatchProcess data)
        {
            var flowId   = HttpContext.Items["flowId"].ToString();
            var messages = data.Messages.Select(m => mapper.Map <UserMessage>(m)).ToArray();

            if (messages.Length > 0)
            {
                var messagesEvent = new BatchAddMessagesEvent {
                    Messages = messages
                };
                publishingRouter.Publish(Queues.Users, messagesEvent, flowId);
            }

            if (data.Transfers.Length > 0)
            {
                var transfersEvent = new BatchTransferEvent {
                    Transfers = data.Transfers
                };
                publishingRouter.Publish(Queues.Accounts, transfersEvent, flowId);
            }

            if (data.ProcessedPaymentsIds.Length > 0)
            {
                var processingTimestampEvent = new UpdateLatestProcessingTimestampEvent {
                    Ids = data.ProcessedPaymentsIds, Timestamp = data.ProcessingTimestamp
                };
                publishingRouter.Publish(Queues.Payments, processingTimestampEvent, flowId);
            }

            var instalments = data.RepaidInstalmentsIds;

            if (instalments.Length > 0)
            {
                var transfersEvent = new BatchRepayInstalmentsEvent {
                    Ids = instalments
                };
                publishingRouter.Publish(Queues.Loans, transfersEvent, flowId);
            }

            return(Task.CompletedTask);
        }