Esempio n. 1
0
        public PepperiAuditLog AuditLogPolling(string auditLogId, int poolingInternvalInMs = 1000, int numberOfPoolingAttempts = 60 * 5)
        {
            PepperiAuditLog result         = null;
            var             current        = 0;
            var             isStillPolling = true;

            while (current < numberOfPoolingAttempts && isStillPolling)
            {
                Thread.Sleep(poolingInternvalInMs);
                current += 1;

                var log = GetAuditLog(auditLogId);

                var statusId = log?.Status?.ID;

                if (statusId != (int)ePepperiAuditLogStatus.InProgress)
                {
                    isStillPolling = false;
                    result         = log;
                }
            }

            return(result);
        }
Esempio n. 2
0
        private UDC_UploadFile_Result GetImportFileDataResult(PepperiAuditLog auditLog)
        {
            var logResultObject    = auditLog?.AuditInfo?.ResultObject;
            var parsedResultObject = PepperiJsonSerializer.DeserializeOne <UDC_UploadFile_AuditLog_ResultObject>(logResultObject);
            var url = parsedResultObject?.URI;

            ValuesValidator.Validate(url, "Can't get URI Response!");

            var HttpClient = new HttpClient(new LoggingHandler(this.Logger))
            {
            };

            //send request
            HttpClient.Timeout = new TimeSpan(0, 5, 0);// by default wait 5 minutes
            HttpResponseMessage HttpResponseMessage = HttpClient.GetAsync(url).Result;
            string body = HttpResponseMessage.Content.ReadAsStringAsync().Result;

            ValuesValidator.Validate(HttpResponseMessage.StatusCode == HttpStatusCode.OK, $"Can't get Required File! (Status Code - {HttpResponseMessage.StatusCode})");

            var table = PepperiJsonSerializer.DeserializeCollection <UDC_UploadFile_Row>(body);

            var result = new UDC_UploadFile_Result()
            {
                Success      = true,
                Total        = table.Count(),
                TotalUpdated = 0,
                TotalIgnored = 0,
                TotalFailed  = 0,
                FailedRows   = new List <UDC_UploadFile_Row>()
                {
                }
            };

            var grouped = table.GroupBy(row => row.Status);

            foreach (var gropedRow in grouped)
            {
                switch (gropedRow.Key)
                {
                case "Error":
                    result.TotalFailed = gropedRow.Count();
                    result.FailedRows  = gropedRow.ToList();
                    break;

                case "Update":
                    result.TotalUpdated = gropedRow.Count();
                    break;

                case "Insert":
                    result.TotalInserted = gropedRow.Count();
                    break;

                case "Ignore":
                    result.TotalIgnored = gropedRow.Count();
                    break;

                default:
                    break;
                }
            }


            return(result);
        }