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); }
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); }