Пример #1
0
        private BatchProcessFailure CreateBatchProcessFailureItem(Misc.Shipment shipment, OrderCloudException ex)
        {
            BatchProcessFailure failure = new BatchProcessFailure();
            string errorMessage;

            try
            {
                errorMessage = $"{ex.Message}: {((dynamic)ex?.Errors[0]?.Data).ToList()?[0]}";
            }
            catch
            {
                errorMessage = $"{ex.Message}";
            }

            if (errorMessage == null)
            {
                failure.Error = "Something went wrong";
            }
            else
            {
                failure.Error = errorMessage;
            }

            failure.Shipment = shipment;

            return(failure);
        }
Пример #2
0
        private async Task <BatchProcessResult> ProcessShipments(DocumentImportResult importResult, VerifiedUserContext userContext)
        {
            BatchProcessResult processResult = new BatchProcessResult();

            if (importResult == null)
            {
                return(null);
            }
            if (importResult.Valid?.Count < 0)
            {
                return(null);
            }

            foreach (Misc.Shipment shipment in importResult.Valid)
            {
                try
                {
                    bool isSuccessful = await ProcessShipment(shipment, processResult, userContext);
                }
                catch (Exception ex)
                {
                    BatchProcessFailure failureDto = new BatchProcessFailure();
                    failureDto.Error    = ex.Message;
                    failureDto.Shipment = shipment;
                    processResult.ProcessFailureList.Add(failureDto);
                }
            }
            processResult.InvalidRowFailureList.AddRange(importResult.Invalid);
            processResult.Meta = new BatchProcessSummary()
            {
                ProcessFailureListCount  = processResult.ProcessFailureList.Count(),
                DocumentFailureListCount = processResult.InvalidRowFailureList.Count(),
                SuccessfulCount          = processResult.SuccessfulList.Count(),
                TotalCount = importResult.Meta.TotalCount
            };

            return(processResult);
        }