예제 #1
0
        public async Task Handle(DocumentWorkerEventResponse message, IMessageHandlerContext context)
        {
            _logger.Info($"{message.CorrelationId} - DocumentSaga.DocumentWorkerResponse.Handle Start - {JsonConvert.SerializeObject(message)}");

            Data.IsDocumentDownloadedBit = true;

            var documentMainEvent = message.ToDouDocumentMainMessage();

            documentMainEvent.EnqueueDtTm = Data.EnqueueDtTm;
            documentMainEvent.PickupDtTm  = Data.PickupDtTm;
            documentMainEvent.ThrottleId  = Data.ThrottleId;
            documentMainEvent.FinishDtTm  = DateTimeOffset.Now;
            documentMainEvent.WorkerId    = Data.WorkerId;

            if (!Data.IsMainEventUpdatedBit)
            {
                await ReplyToOriginator(context, documentMainEvent).ConfigureAwait(false);
            }

            _logger.Info($"{message.CorrelationId} - DocumentSaga.DocumentWorkerResponse.Handle RequestTimeout {nameof(ConstantValue.DefaultSagaTimeoutInSeconds)} with values {ConstantValue.DefaultSagaTimeoutInSeconds}");
            await RequestTimeout <DocumentTimeout>(context, TimeSpan.FromSeconds(ConstantValue.DefaultSagaTimeoutInSeconds)).ConfigureAwait(false);


            _logger.Info($"{message.CorrelationId} - DocumentSaga.DocumentWorkerResponse.Handle End");
        }
 public static DocumentMainMessage ToDouDocumentMainMessage(this DocumentWorkerEventResponse response)
 {
     return(new DocumentMainMessage
     {
         CmdId = response.CmdId,
         Id = response.Id,
         CorrelationId = response.CorrelationId,
         StatusId = response.StatusId,
         EventId = response.EventId,
         ResourceId = response.ResourceId,
         InstanceId = response.InstanceId,
         SuccessBit = response.SuccessBit,
         EventStatus = response.EventStatus,
         EventReason = response.EventReason,
         ErrorMsgTxt = response.ErrorMsgTxt
     });
 }