コード例 #1
0
        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);
        }
コード例 #2
0
        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.");
                }
            }
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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());
        }
コード例 #5
0
        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));
            }
        }
コード例 #6
0
        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);
        }