Exemplo n.º 1
0
        public async Task <string> HandleMessageAsync(ReceivedMessageArgs messageObject)
        {
            var baseMessage = JsonConvert.DeserializeObject <BaseTransactionMessage>(messageObject.Message);

            if (await _requestsRepository.IsHandledOrSaveRequestAsync(baseMessage.Id, GetRequestIdInvalidationDate()))
            {
                return($"Already handled: {baseMessage.Id}");
            }

            try
            {
                switch (messageObject.Action)
                {
                case TransactionMessageActions.MoveTask_Complete:
                    return(await CompleteTransactionAsync(messageObject.Message));

                case TransactionMessageActions.MoveTask_Rollback:
                    return(await RollbackTransactionAsync(messageObject.Message));

                default:
                    return(await HandleMessageInternalAsync(messageObject.Message, messageObject.Action));
                }
            }
            catch
            {
                await _requestsRepository.DeleteRequestIdAsync(baseMessage.Id);

                throw;
            }
        }
Exemplo n.º 2
0
 private bool CheckIsHandleRequired(BaseMessage message, RequestsRepository requestsRepository)
 {
     return(!requestsRepository.IsHandledOrSaveRequestAsync(
                message.Id,
                GetRequestIdInvalidationDate())
            .GetAwaiter()
            .GetResult());
 }