public string GetAWBNumber(ExpressShipmentModel expressBookingDetail, ExpressShipmentRequest frayteShipmentRequest) { frayteShipmentRequest.AWBNumber = frayteShipmentRequest.AWBNumber.Replace(" ", ""); string awbNo = string.Empty; if (!string.IsNullOrEmpty(frayteShipmentRequest.AWBNumber)) { if (frayteShipmentRequest.AWBNumber.Substring(0, 3) == frayteShipmentRequest.Security.AccountNumber.Substring(0, 3)) { var ISCheckAwb = dbContext.Expresses.Where(a => a.AWBBarcode == frayteShipmentRequest.AWBNumber).FirstOrDefault(); if (ISCheckAwb != null) { throw new Exception("AWB already exist in system"); } else { awbNo = GetAwb(expressBookingDetail, frayteShipmentRequest, frayteShipmentRequest.AWBNumber, "UI"); } } else { throw new Exception("AWB Format is wrong"); } } else { awbNo = GetAwb(expressBookingDetail, frayteShipmentRequest, "", "NoNUI"); } return(awbNo); }
public void CheckServiceCode(ExpressShipmentRequest ESR) { var Country = dbContext.Countries.Where(a => a.CountryCode == ESR.ShipTo.Address.CountryCode).FirstOrDefault(); if (Country != null) { var Result = (from HCS in dbContext.HubCarrierServices join HCSC in dbContext.HubCarrierServiceCountries on HCS.HubCarrierServiceId equals HCSC.HubCarrierServiceId where HCS.ServiceCode == ESR.ServiceCode && HCSC.CountryId == Country.CountryId select HCS).FirstOrDefault(); if (Result == null) { throw new Exception("Wrong service code used for wrong address."); } } }
public string GetAwb(ExpressShipmentModel expressBookingDetail, ExpressShipmentRequest frayteShipmentRequest, string AwbNo, string AwbFrom) { string Awbno = string.Empty; if (AwbFrom == "NoNUI") { AwbAgain: var awbNo = frayteShipmentRequest.Security.AccountNumber.Substring(0, 3).ToString() + new Random().Next(100000000, 999999999); var Result = dbContext.Expresses.Where(a => a.AWBBarcode == awbNo).FirstOrDefault(); if (Result == null) { ScanInitalAwbModel SIAM = new ScanInitalAwbModel(); SIAM.AwbNumber = awbNo; SIAM.MobileEventId = 1; SIAM.ScannedBy = GetCustomerDetail(frayteShipmentRequest.Security.AccountNumber).CustomerId; var AwbDetial = new ExpressScannedAWBRepository().CollectionScanMobileAwb(SIAM); expressBookingDetail.ExpressId = AwbDetial.ExpressId; Awbno = AwbDetial.AwbNumber; expressBookingDetail.ShipmentStatusId = dbContext.Expresses.Where(a => a.ExpressId == AwbDetial.ExpressId).FirstOrDefault().ShipmentStatusId; } else { goto AwbAgain; } } else { var Result = dbContext.Expresses.Where(a => a.AWBBarcode == AwbNo).FirstOrDefault(); if (Result == null) { ScanInitalAwbModel SIAM = new ScanInitalAwbModel(); SIAM.AwbNumber = AwbNo; SIAM.MobileEventId = 1; SIAM.ScannedBy = GetCustomerDetail(frayteShipmentRequest.Security.AccountNumber).CustomerId; var AwbDetial = new ExpressScannedAWBRepository().CollectionScanMobileAwb(SIAM); expressBookingDetail.ExpressId = AwbDetial.ExpressId; Awbno = AwbDetial.AwbNumber; expressBookingDetail.ShipmentStatusId = dbContext.Expresses.Where(a => a.ExpressId == AwbDetial.ExpressId).FirstOrDefault().ShipmentStatusId; } } return(Awbno); }
public IHttpActionResult ExpressShipmentBooking(ExpressShipmentRequest Shipment) { try { List <FrayteUploadshipment> _upload = new ExpressShipmentRepository().JsonValidate(Shipment, FrayteCallingType.FrayteApi); if (_upload.Count > 0) { return(Ok(_upload[0].Errors)); } else { var shipment = new ExpressShipmentRepository().MappingFrayteRequestToExpressBookingDetail(Shipment); ExpressShipmentResponseModel ExpressResponse = new ExpressShipmentResponseModel(); ExpressShipmentModel model = new ExpressRepository().SaveShipment(shipment); if (shipment.Error.Status && model.ShipmentStatusId == (int)FrayteExpressShipmentStatus.Scanned) { #region Logistic Integration if (shipment.Service.HubCarrier == FrayteCourierCompany.DHL) { #region DHL Integration IntegrtaionResult result = new IntegrtaionResult(); //step 1. Mapping With express model to ShipmentRequestDto var shipmentRequestDto = new DHLRepository().MapExpressShipmentToDHLShipmentRequestDto(shipment); //Step 2. Create Xml string shipmentXML = string.Empty; //Version5.0 shipmentXML = new DHLRepository().CreateXMLForDHL(shipmentRequestDto); //Version 6.2 not in use // shipmentXML = new DHLUKRepositry().CreateXMLForDHLUK(shipmentRequestDto); string xml_in = string.Empty; xml_in = File.ReadAllText(@shipmentXML); //step 3. Create Shipment var DHLResponse = new DHLResponseDto(); DHLResponse = new DHLRepository().CreateShipment(xml_in, shipmentRequestDto); //step 4. Mapping ShipmentResonse to IntegrtaionResult result = new DHLRepository().MapDHLIntegrationResponse(DHLResponse); if (result.Status) { if (shipment.Service.HubCarrier == FrayteCourierCompany.DHL) { //Step 1.1 Mapping ShipmentResult to IntegrtaionResult try { new ExpressRepository().MappingCourierPieceDetail(result, shipment); } catch (Exception Ex) { throw (new FrayteApiException("MapDHLCourierPieceDetailError", Ex)); } } //Step3 : Save Main Tracking Number new ExpressRepository().SaveMainTrackingDetail(shipment, result, xml_in, ""); new ExpressRepository().SaveTrackingDetail(shipment, result); // AfterShipIntegration if (AppSettings.ApplicationMode == FrayteApplicationMode.Live) { FrayteAfterShipTracking aftershipTracking = new AftershipTrackingRepository().MapDirectShipmentObjToAfterShip(shipment.ExpressId, FrayteShipmentServiceType.Express); if (aftershipTracking != null && AppSettings.ApplicationMode == FrayteApplicationMode.Live) { //Elmah.ErrorSignal.FromCurrentContext().Raise(new Exception("Integration in aftership")); new AftershipTrackingRepository().CreateTracking(aftershipTracking); } } //Step4: //Start downloading the images from DHL server and making PDF var count = 1; var totalpiece = result.PieceTrackingDetails.Count(); totalpiece = totalpiece - 1; foreach (var data in result.PieceTrackingDetails.Take(totalpiece)) { if (shipment.Service.HubCarrier == FrayteCourierCompany.DHL) { // Step3.1 data.LabelName = new DHLRepository().ExpressDownloadDHLImage(data, totalpiece, count, shipment.ExpressId); } if (!data.PieceTrackingNumber.Contains("AirwayBillNumber_")) { //Step3.2 new ExpressRepository().SavePackageDetail(data, result.CourierName); } count++; } var CourierPieceDetail = result.PieceTrackingDetails.Where(t => t.PieceTrackingNumber.Contains("AirwayBillNumber_")).FirstOrDefault(); if (CourierPieceDetail != null) { var data1 = new DHLRepository().ExpressDownloadDHLImage(CourierPieceDetail, totalpiece, 0, shipment.ExpressId); // save all dhl image new ExpressRepository().SaveLogisticLabelImage(shipment.ExpressId, data1); } if (result.Status) { var status = Generate_Seperate_PackageLabelPDF(shipment.ExpressId, shipment, result); // Send Booking confirmation email if (status.Status) { ExpressEmailModel emailModel = new ExpressEmailModel(); emailModel = new ExpressRepository().Fill_EXS_E1Model(emailModel, shipment); if (emailModel != null) { new ExpressRepository().SendEmail_EXS_E1(emailModel); } new ExpressShipmentRepository().MappingFrayteResponseToExpressBookingDetail(shipment, result, ExpressResponse); } } } else { shipment.Error = result.Error; } #endregion } if (shipment.Service.HubCarrier == FrayteCourierCompany.Yodel) { #region Yodel Integration //Map Direct Booking object with parcel hub objects Frayte.Services.Models.ParcelHub.ParcelHubShipmentRequest request = new ParcelHubRepository().MapExpressBookingDetailToShipmentRequest(shipment); //Create shipment in Parcel hub Frayte.Services.Models.ParcelHub.ParcelHubResponse response = new ParcelHubRepository().CreateShipment(request); if (response.Error.IsMailSend) { //Send error mail to developer shipment.Error = new FratyteError(); shipment.Error.Custom = new List <string>(); shipment.Error.Package = new List <string>(); shipment.Error.Address = new List <string>(); shipment.Error.Service = new List <string>(); shipment.Error.ServiceError = new List <string>(); shipment.Error.Miscellaneous = new List <string>(); shipment.Error.MiscErrors = new List <FrayteKeyValue>(); shipment.Error = response.Error; new DirectShipmentRepository().SaveExpressEasyPosyPickUpObject(Newtonsoft.Json.JsonConvert.SerializeObject(response.Error).ToString(), Newtonsoft.Json.JsonConvert.SerializeObject(shipment).ToString(), shipment.ExpressId); } else { //Mapping ShipmentResonse to IntegrtaionResult var result = new ParcelHubRepository().MappingExpressParcelHubToIntegrationResult(shipment, response, null); if (result.Status) { //Mapping ShipmentResult to IntegrtaionResult new ParcelHubRepository().MappingExpressCourierPieceDetail(result, shipment, shipment.ExpressId); //Save Package Label Tracking detail new ExpressRepository().SaveMainTrackingDetail(shipment, result, response.Request, response.Response); FratyteError Error = new ParcelHubRepository().DownloadExpressParcelHubPackageImage(shipment, result, shipment.ExpressId); //Start Making Final One pdf file for all package label Generate_Seperate_PackageLabelPDF(shipment.ExpressId, shipment, result); if (result.Status) { ExpressEmailModel emailModel = new ExpressEmailModel(); emailModel = new ExpressRepository().Fill_EXS_E1Model(emailModel, shipment); if (emailModel != null) { new ExpressRepository().SendEmail_EXS_E1(emailModel); } new ExpressShipmentRepository().MappingFrayteResponseToExpressBookingDetail(shipment, result, ExpressResponse); } shipment.Error = new FratyteError() { Status = result.Status, }; } else { if (result.Error.IsMailSend) { //Send error mail to developer shipment.Error = new FratyteError(); shipment.Error.Custom = new List <string>(); shipment.Error.Package = new List <string>(); shipment.Error.Address = new List <string>(); shipment.Error.Service = new List <string>(); shipment.Error.ServiceError = new List <string>(); shipment.Error.Miscellaneous = new List <string>(); shipment.Error.MiscErrors = new List <FrayteKeyValue>(); shipment.Error = result.Error; } } } #endregion } if (shipment.Service.HubCarrier == FrayteCourierCompany.Hermes) { #region Hermes Integration Frayte.Services.Models.ParcelHub.ParcelHubShipmentRequest request = new ParcelHubRepository().MapExpressBookingDetailToShipmentRequest(shipment); //Create shipment in Parcel hub Frayte.Services.Models.ParcelHub.ParcelHubResponse response = new ParcelHubRepository().CreateHermesShipment(request); if (response.Error.IsMailSend) { //Send error mail to developer shipment.Error = new FratyteError(); shipment.Error.Custom = new List <string>(); shipment.Error.Package = new List <string>(); shipment.Error.Address = new List <string>(); shipment.Error.Service = new List <string>(); shipment.Error.ServiceError = new List <string>(); shipment.Error.Miscellaneous = new List <string>(); shipment.Error.MiscErrors = new List <FrayteKeyValue>(); shipment.Error = response.Error; new DirectShipmentRepository().SaveExpressEasyPosyPickUpObject(Newtonsoft.Json.JsonConvert.SerializeObject(response.Error).ToString(), Newtonsoft.Json.JsonConvert.SerializeObject(shipment).ToString(), shipment.ExpressId); } else { //Mapping ShipmentResonse to IntegrtaionResult var result = new ParcelHubRepository().MappingExpressParcelHubToIntegrationResult(shipment, response, null); if (result.Status) { //Mapping ShipmentResult to IntegrtaionResult new ParcelHubRepository().MappingExpressCourierPieceDetail(result, shipment, shipment.ExpressId); //Save Package Label Tracking detail new ExpressRepository().SaveMainTrackingDetail(shipment, result, response.Request, response.Response); //Start Making Final One pdf file for all package label Generate_Seperate_PackageLabelPDF(shipment.ExpressId, shipment, result); if (result.Status) { ExpressEmailModel emailModel = new ExpressEmailModel(); emailModel = new ExpressRepository().Fill_EXS_E1Model(emailModel, shipment); if (emailModel != null) { new ExpressRepository().SendEmail_EXS_E1(emailModel); } new ExpressShipmentRepository().MappingFrayteResponseToExpressBookingDetail(shipment, result, ExpressResponse); } shipment.Error = new FratyteError() { Status = result.Status, }; } else { if (result.Error.IsMailSend) { //Send error mail to developer shipment.Error = new FratyteError(); shipment.Error.Custom = new List <string>(); shipment.Error.Package = new List <string>(); shipment.Error.Address = new List <string>(); shipment.Error.Service = new List <string>(); shipment.Error.ServiceError = new List <string>(); shipment.Error.Miscellaneous = new List <string>(); shipment.Error.MiscErrors = new List <FrayteKeyValue>(); shipment.Error = result.Error; } } } #endregion } if (shipment.Service.HubCarrier.ToUpper().Contains(FrayteCourierCompany.EAM)) { #region EAM Global Integration IntegrtaionResult result = new IntegrtaionResult(); if (shipment.Service.HubCarrier.ToUpper().Contains(FrayteCourierCompany.EAM)) { var shipmentRequestDto = new EAMGlobalRepository().MapExpressBookingDetailToShipmentRequestDto(shipment); string shipmentXML = new EAMGlobalRepository().CreateXMLForEAM(shipmentRequestDto); string xml_in = File.ReadAllText(@shipmentXML); //Create Shipment var shipmentResult = new EAMGlobalRepository().CreateShipment(xml_in, shipment.ExpressId); result = new EAMGlobalRepository().MapExpressEAMGlobalIntegrationResponse(shipmentResult, shipment.Packages); } if (result.Status) { if (shipment.Service.HubCarrier.ToUpper().Contains(FrayteCourierCompany.EAM)) { //Mapping ShipmentResult to IntegrtaionResult new ExpressRepository().MappingCourierPieceDetail(result, shipment); } //Save Package Label Tracking detail new ExpressRepository().SaveMainTrackingDetail(shipment, result, "", ""); //Start downloading the images from DPD server and making PDF var count = 1; foreach (var data in result.PieceTrackingDetails) { if (shipment.Service.HubCarrier.ToUpper().Contains(FrayteCourierCompany.EAM)) { //Step3.1 data.LabelName = new EAMGlobalRepository().DownloadExpressEAMImageTOPDF(data, result.PieceTrackingDetails.Count(), count, shipment.ExpressId, shipment.Service); } // Step3.2 new ExpressRepository().SavePackageDetail(data, result.CourierName); count++; } //Step:4 Generate PDF Generate_Seperate_PackageLabelPDF(shipment.ExpressId, shipment, result); if (result.Status) { ExpressEmailModel emailModel = new ExpressEmailModel(); emailModel = new ExpressRepository().Fill_EXS_E1Model(emailModel, shipment); if (emailModel != null) { new ExpressRepository().SendEmail_EXS_E1(emailModel); } new ExpressShipmentRepository().MappingFrayteResponseToExpressBookingDetail(shipment, result, ExpressResponse); } shipment.Error = new FratyteError() { Status = result.Status, }; } else { shipment.Error = result.Error; } #endregion } #endregion return(Ok(ExpressResponse)); } } } catch (Exception Ex) { string error = ReadException(Ex); ExpressErrorResponse Response = new FrayteApiErrorCodeRepository().SaveExpressApiError(error); return(Ok(Response)); } return(Ok()); }
public ExpressShipmentModel MappingFrayteRequestToExpressBookingDetail(ExpressShipmentRequest frayteShipmentRequest) { ExpressShipmentModel expressBookingDetail = new ExpressShipmentModel(); try { var customerfrom = GetCustomerDetail(frayteShipmentRequest.Security.AccountNumber); var country = GetCountry(frayteShipmentRequest.ShipFrom.Address.CountryCode); CheckServiceCode(frayteShipmentRequest); //Entry in DB for AwbNumber(Shipment PickedUp) expressBookingDetail.AWBNumber = GetAWBNumber(expressBookingDetail, frayteShipmentRequest); expressBookingDetail.ActualWeight = frayteShipmentRequest.Package.Sum(a => a.Weight); expressBookingDetail.ShipFrom = new ExpressAddressModel() { CompanyName = frayteShipmentRequest.ShipFrom.CompanyName, Address = frayteShipmentRequest.ShipFrom.Address.Address1, Address2 = frayteShipmentRequest.ShipFrom.Address.Address2, City = frayteShipmentRequest.ShipFrom.Address.City, Email = frayteShipmentRequest.ShipFrom.Email, PostCode = frayteShipmentRequest.ShipFrom.Address.Postcode, State = frayteShipmentRequest.ShipFrom.Address.State, Area = frayteShipmentRequest.ShipFrom.Address.Area, Phone = frayteShipmentRequest.ShipFrom.Phone, Country = new FrayteCountryCode() { Code = country.CountryCode, Code2 = country.CountryCode2, CountryId = country.CountryId, Name = country.CountryName, TimeZoneDetail = null }, CustomerId = customerfrom.CustomerId, FirstName = frayteShipmentRequest.ShipFrom.FirstName, LastName = frayteShipmentRequest.ShipFrom.LastName, IsMailSend = false, }; var country1 = GetCountry(frayteShipmentRequest.ShipTo.Address.CountryCode); expressBookingDetail.ShipTo = new ExpressAddressModel() { CompanyName = frayteShipmentRequest.ShipTo.CompanyName, Address = frayteShipmentRequest.ShipTo.Address.Address1, Address2 = frayteShipmentRequest.ShipTo.Address.Address2, City = frayteShipmentRequest.ShipTo.Address.City, Email = frayteShipmentRequest.ShipTo.Email, PostCode = frayteShipmentRequest.ShipTo.Address.Postcode, State = frayteShipmentRequest.ShipTo.Address.State, Area = frayteShipmentRequest.ShipTo.Address.Area, Phone = frayteShipmentRequest.ShipTo.Phone, Country = new FrayteCountryCode() { Code = country1.CountryCode, Code2 = country1.CountryCode2, CountryId = country1.CountryId, Name = country1.CountryName, TimeZoneDetail = null }, CustomerId = customerfrom.CustomerId, FirstName = frayteShipmentRequest.ShipTo.FirstName, LastName = frayteShipmentRequest.ShipTo.LastName, IsMailSend = false, }; expressBookingDetail.DeclaredCurrency = new CurrencyType() { CurrencyCode = customerfrom.CurrencyCode, CurrencyDescription = "", }; expressBookingDetail.Packages = new List <ExpressPackageModel>(); foreach (var package in frayteShipmentRequest.Package) { var item = new ExpressPackageModel() { CartonValue = package.CartoonValue, Height = Frayte.Services.CommonConversion.ConvertToDecimal(package.Height), Length = Frayte.Services.CommonConversion.ConvertToDecimal(package.Length), Width = Frayte.Services.CommonConversion.ConvertToDecimal(package.Width), Content = package.ShipmentContents, Weight = package.Weight, Value = package.DeclaredValue }; expressBookingDetail.Packages.Add(item); } ; //expressBookingDetail.ParcelType = frayteShipmentRequest.par; if (frayteShipmentRequest.CustomInformation != null) { expressBookingDetail.CustomInformation = new ExpressCustomInformationModel() { ContentsType = frayteShipmentRequest.CustomInformation.ContentsType, RestrictionType = frayteShipmentRequest.CustomInformation.RestrictionType, ContentsExplanation = frayteShipmentRequest.CustomInformation.ContentsExplanation, RestrictionComments = frayteShipmentRequest.CustomInformation.RestrictionComments, CustomsCertify = true, CustomsSigner = frayteShipmentRequest.CustomInformation.CustomsSigner, NonDeliveryOption = frayteShipmentRequest.CustomInformation.NonDeliveryOption, }; } expressBookingDetail.Service = new HubService(); expressBookingDetail.Service = frayteShipmentRequest.Service; expressBookingDetail.PakageCalculatonType = frayteShipmentRequest.PackageCalculationType; expressBookingDetail.CustomerId = customerfrom.CustomerId; expressBookingDetail.PayTaxAndDuties = frayteShipmentRequest.PaymentPartyTaxAndDuties; expressBookingDetail.CreatedBy = customerfrom.CustomerId; expressBookingDetail.DeclaredValue = expressBookingDetail.Packages.Sum(a => a.Value); //expressBookingDetail = new ReferenceDetail(); // expressBookingDetail.ReferenceDetail.CollectionDate = Convert.ToDateTime(frayteShipmentRequest.RequestedPickupDate); //expressBookingDetail.ReferenceDetail.CollectionTime = frayteShipmentRequest.RequestedPickupDate.HasValue ? frayteShipmentRequest.RequestedPickupDate.Value.ToString("HHmm") : ""; expressBookingDetail.ShipmentReference = frayteShipmentRequest.ShipmentReference; expressBookingDetail.ShipmentDescription = frayteShipmentRequest.ShipmentReference; //expressBookingDetail.Service = GetExpressService(frayteShipmentRequest.ServiceCode); //directBookingDetail.CustomerId = user != null && user.RoleId == (int)FrayteUserRole.UserCustomer ? user.CustomerId : customerfrom.CustomerId; //directBookingDetail.CreatedBy = user != null && user.RoleId == (int)FrayteUserRole.UserCustomer ? user.CreatedBy : customerfrom.CustomerId; //directBookingDetail.ShipmentStatusId = 12; //directBookingDetail.BookingStatusType = "Darft"; //directBookingDetail.PakageCalculatonType = frayteShipmentRequest.PackageCalculationType; //directBookingDetail.AddressType = frayteShipmentRequest.AddressType; return(expressBookingDetail); } catch (Exception ex) { throw (new FrayteApiException("MappingRequestError", ex)); } }
public List <FrayteUploadshipment> JsonValidate(ExpressShipmentRequest frayteShipmentRequest, string CallFrom) { FrayteUploadshipment upload = new FrayteUploadshipment(); List <FrayteUploadshipment> _upload = new List <FrayteUploadshipment>(); upload.ShipFrom = new DirectBookingCollection() { CompanyName = frayteShipmentRequest.ShipFrom.CompanyName, FirstName = frayteShipmentRequest.ShipFrom.FirstName, LastName = frayteShipmentRequest.ShipFrom.LastName, Email = frayteShipmentRequest.ShipFrom.Email, Phone = frayteShipmentRequest.ShipFrom.Phone, Address = frayteShipmentRequest.ShipFrom.Address.Address1, Address2 = frayteShipmentRequest.ShipFrom.Address.Address2, City = frayteShipmentRequest.ShipFrom.Address.City, State = frayteShipmentRequest.ShipFrom.Address.State, Area = frayteShipmentRequest.ShipFrom.Address.Area, PostCode = frayteShipmentRequest.ShipFrom.Address.Postcode, Country = new FrayteCountryCode() { Code = frayteShipmentRequest.ShipFrom.Address.CountryCode } }; upload.ShipTo = new DirectBookingCollection() { CompanyName = frayteShipmentRequest.ShipTo.CompanyName, FirstName = frayteShipmentRequest.ShipTo.FirstName, LastName = frayteShipmentRequest.ShipTo.LastName, Email = frayteShipmentRequest.ShipTo.Email, Phone = frayteShipmentRequest.ShipTo.Phone, Address = frayteShipmentRequest.ShipTo.Address.Address1, Address2 = frayteShipmentRequest.ShipTo.Address.Address2, City = frayteShipmentRequest.ShipTo.Address.City, State = frayteShipmentRequest.ShipTo.Address.State, Area = frayteShipmentRequest.ShipTo.Address.Area, PostCode = frayteShipmentRequest.ShipTo.Address.Postcode, Country = new FrayteCountryCode() { Code = frayteShipmentRequest.ShipTo.Address.CountryCode } }; upload.Package = new List <UploadShipmentPackage>(); foreach (var pp in frayteShipmentRequest.Package) { UploadShipmentPackage pack = new UploadShipmentPackage() { Length = Frayte.Services.CommonConversion.ConvertToDecimal(pp.Length), Width = Frayte.Services.CommonConversion.ConvertToDecimal(pp.Width), Height = Frayte.Services.CommonConversion.ConvertToDecimal(pp.Height), Weight = pp.Weight, CartoonValue = pp.CartoonValue, Value = pp.DeclaredValue, Content = pp.ShipmentContents }; upload.Package.Add(pack); } ; upload.CustomInfo = new CustomInformation() { ContentsType = frayteShipmentRequest.CustomInformation.ContentsType, ContentsExplanation = frayteShipmentRequest.CustomInformation.ContentsExplanation, RestrictionType = frayteShipmentRequest.CustomInformation.RestrictionType, RestrictionComments = frayteShipmentRequest.CustomInformation.RestrictionComments, CustomsSigner = frayteShipmentRequest.CustomInformation.CustomsSigner, NonDeliveryOption = frayteShipmentRequest.CustomInformation.NonDeliveryOption, }; upload.ServiceCode = frayteShipmentRequest.ServiceCode; frayteShipmentRequest.Service = GetExpressService(frayteShipmentRequest.ServiceCode); if (frayteShipmentRequest.ShipFrom.Address.CountryCode == "GBR" && frayteShipmentRequest.ShipTo.Address.CountryCode == "GBR") { frayteShipmentRequest.Service.LogisticServiceType = "UK Domestic"; } else if (frayteShipmentRequest.ShipFrom.Address.CountryCode != "GBR" && frayteShipmentRequest.ShipTo.Address.CountryCode == "GBR") { frayteShipmentRequest.Service.LogisticServiceType = "Import"; } else if (frayteShipmentRequest.ShipFrom.Address.CountryCode == "GBR" && frayteShipmentRequest.ShipTo.Address.CountryCode != "GBR") { frayteShipmentRequest.Service.LogisticServiceType = "Export"; } upload.PackageCalculationType = frayteShipmentRequest.PackageCalculationType; upload.CurrencyCode = frayteShipmentRequest.DeclaredCurrencyCode; upload.PayTaxAndDuties = frayteShipmentRequest.PaymentPartyTaxAndDuties; upload.ShipmentReference = frayteShipmentRequest.ShipmentReference; upload.ShipmentDescription = frayteShipmentRequest.Package[0].ShipmentContents; //upload.CollectionDate = frayteShipmentRequest.RequestedPickupDate.HasValue ? frayteShipmentRequest.RequestedPickupDate.Value.ToString("dd/MM/yyyy") : ""; //upload.CollectionTime = frayteShipmentRequest.RequestedPickupDate.HasValue ? frayteShipmentRequest.RequestedPickupDate.Value.ToString("HHmm") : ""; _upload.Add(upload); ErrorLog(_upload, CallFrom); List <FrayteUploadshipment> Unsucessfuljson = new List <FrayteUploadshipment>(); foreach (var res in _upload) { if (res.Errors.Count > 0) { Unsucessfuljson.Add(res); } } return(Unsucessfuljson); }