Ejemplo n.º 1
0
        public override void Process(object sender, MessageReceivedArgs argument)
        {
            var request = argument.Request;
            var status  = _statusTableProvider.Get("ServiceRequestCommand", request.Tracker.ToString());

            if (status == null)
            {
                var statusInfo = new StatusInfo()
                {
                    Client       = request.ClientName,
                    CreatedTime  = DateTime.UtcNow,
                    Status       = "Created",
                    TrackingGuid = request.Tracker
                };
                status = new StatusTableEntity(statusInfo);
            }
            status.Status = "Processing";
            _statusTableProvider.Update(status);

            Thread.Sleep(3000);
            var random = new Random();

            request.Sku = "CSR-" + random.Next(10000, 99999);
            _serviceRequestTableProvider.Update(new ServiceRequestEntity(request));

            status.Status        = "Completed";
            status.ProcessedTime = DateTime.UtcNow;
            status.Result        = request.Sku;

            _statusTableProvider.Update(status);
            Console.WriteLine($"Cost Rate Request Processing Complete - {request.Tracker}");
        }
Ejemplo n.º 2
0
        public override void Process(object sender, MessageReceivedArgs argument)
        {
            var request = argument.Request;

            Console.WriteLine($"Part Number Request Processing - {request.Tracker}");
            try
            {
                var status = _statusTableProvider.Get("ServiceRequestCommand", request.Tracker.ToString());
                if (status == null)
                {
                    var statusInfo = new StatusInfo()
                    {
                        Client       = request.ClientName,
                        CreatedTime  = DateTime.UtcNow,
                        Status       = "Created",
                        TrackingGuid = request.Tracker
                    };
                    status = new StatusTableEntity(statusInfo);
                }
                status.Status = "Processing";
                _statusTableProvider.Update(status);

                Thread.Sleep(3000);

                var random      = new Random();
                var errorNumber = random.Next(0, 3);
                if (errorNumber == 2)
                {
                    throw new Exception($"Failed to create Part Number for {request.Tracker}");
                }

                request.Sku = "PNR-" + random.Next(10000, 99999);
                _serviceRequestTableProvider.Update(new ServiceRequestEntity(request));

                status.Status        = "Completed";
                status.ProcessedTime = DateTime.UtcNow;
                status.Result        = request.Sku;

                _statusTableProvider.Update(status);
            }
            catch (Exception exception)
            {
                var status = _statusTableProvider.Get("ServiceRequestCommand", request.Tracker.ToString());
                if (status == null)
                {
                    var statusInfo = new StatusInfo()
                    {
                        Client       = request.ClientName,
                        CreatedTime  = DateTime.UtcNow,
                        Status       = "Created",
                        TrackingGuid = request.Tracker
                    };
                    status = new StatusTableEntity(statusInfo);
                }
                status.Status = "Failed";
                _statusTableProvider.Update(status);
                Console.WriteLine($"Part Number Request Processing has failed- {request.Tracker}");
                throw;
            }
        }
Ejemplo n.º 3
0
 public async Task ProjectionWriter_UpdateFileStatus_Should_Return_TaskComplete_When_There_Is_No_Exception()
 {
     await Task.Run(() =>
     {
         var writer = new ProjectionWriter(mockApplicationBuilder.Object);
         StatusTableEntity statusTableEntity = new StatusTableEntity();
         var result = writer.UpdateFileStatus(statusTableEntity);
         Assert.True(result.IsCompleted);
     });
 }
Ejemplo n.º 4
0
 private StatusInfo Convert(StatusTableEntity statusTableEntity)
 {
     return(new StatusInfo()
     {
         TrackingGuid = Guid.Parse(statusTableEntity.RowKey),
         Status = statusTableEntity.Status,
         CreatedTime = statusTableEntity.CreatedTime,
         Result = statusTableEntity.Result.Equals("No Result Yet") ? string.Empty : statusTableEntity.Result,
         Remarks = statusTableEntity.Remarks,
         ProcessedTime = statusTableEntity.ProcessedTime == default(DateTime) ? new DateTime(1601, 1, 1) : statusTableEntity.ProcessedTime,
         Client = statusTableEntity.ClientName
     });
 }
Ejemplo n.º 5
0
 /// <summary>
 /// The UpdateFileStatus
 /// </summary>
 /// <param name="statusTableEntity">The statusTableEntity<see cref="StatusTableEntity"/></param>
 /// <returns>The <see cref="Task"/></returns>
 public async Task UpdateFileStatus(StatusTableEntity statusTableEntity)
 {
     string status = JsonConvert.SerializeObject(statusTableEntity);
     var    url    = GetPath(await coreKeyVaultClient.GetSecret(BusinessValidationConstants.KEYVAULT_STATUSTABLEURL), status);
     await corehttpServiceClient.GetAsync <StatusTableEntity>(url);
 }