Esempio n. 1
0
        public override async Task <WorkLog> DoWorkAsync(IList <WorkLog> workLogs, WorkItemBase workItem = null)
        {
            CreateFileWorkResult workResultCreate = GetWorkLog <CreateFileWorkResult>(workLogs);
            TokenFileWorkResult  workResultToken  = GetWorkLog <TokenFileWorkResult>(workLogs);
            MaskFileWorkResult   workResultMask   = GetWorkLog <MaskFileWorkResult>(workLogs);

            Console.WriteLine("Moving files:");

            Console.WriteLine(workResultCreate.FileName);
            Console.WriteLine(workResultToken.UntokenizedFileName);
            Console.WriteLine(workResultMask.MaskedFileName);

            await Task.Delay(TimeSpan.FromSeconds(3));

            if (new Random().Next(1, 100) < 50)
            {
                throw new Exception("MoveFileProcess");
            }

            Guid id = Guid.NewGuid();

            Console.WriteLine("Move file Id: {0}", id);

            MaskFileWorkResult result = new MaskFileWorkResult
            {
                MaskedFileName = "GNS.ORG001.T0000001.CS_20180129170710_Masked",
                WorkId         = id,
                Success        = true
            };

            return(new WorkLog(this, result));
        }
Esempio n. 2
0
        public override async Task <WorkLog> DoWorkAsync(IList <WorkLog> workLogs, WorkItemBase workItem = null)
        {
            // TODO --> Validar data local com base na UTC e corrigir, caso necessário.

            if (workItem == null)
            {
                throw new ArgumentNullException($"{nameof(workItem)} must be informed to CreateFileProcess.");
            }

            DateTime sendDate = ((ICreateFileWorkItemArguments)workItem.Arguments).SendDate;

            Console.WriteLine($"Creating file using parameter: {sendDate }");

            string toSend = JsonConvert.SerializeObject(new { SendDate = sendDate });

            dynamic id = await RetryHelper.RetryAsync <Exception>(async() => await PostWorkItemEndpointAddress <Guid>(toSend), 3, TimeSpan.FromSeconds(3), Logger);

            Console.WriteLine("Created file Id: {0}", id);

            CreateFileWorkResult result = new CreateFileWorkResult
            {
                FileName = "GNS.ORG001.T0000001.CS_20180129170710",
                WorkId   = id,
                Success  = true
            };

            return(new WorkLog(this, result));
        }
Esempio n. 3
0
        public override async Task <WorkLog> DoWorkAsync(IList <WorkLog> workLogs, WorkItemBase workItem = null)
        {
            CreateFileWorkResult workResult = GetWorkLog <CreateFileWorkResult>(workLogs);

            Console.WriteLine($"Tokenizing file: {workResult.FileName}");

            dynamic id = await RetryHelper.RetryAsync <Exception>(async() => await PostWorkItemEndpointAddress <Guid>(), 3, TimeSpan.FromSeconds(3), Logger);

            Console.WriteLine("Tokenized Id: {0}", id);

            // Simulando um percentual abaixo do esperado para setar como fracasso o passo, mesmo que processado com sucesso (estatística, mínimo esperado não alcançado etc...).
            bool success = new Random().Next(1, 100) < 70;

            TokenFileWorkResult result = new TokenFileWorkResult
            {
                UntokenizedFileName = "GNS.ORG001.T0000001.CS_20180129170710_UnTokenized",
                WorkId  = id,
                Success = success
            };

            return(new WorkLog(this, result));
        }