Beispiel #1
0
 public ShipmentLabelResponse GetShipmentLabels(ShipmentLabelRequest shipmentLabelRequest)
 {
     return(new ShipmentLabelResponse());
 }
Beispiel #2
0
        public ShipmentLabelResponse GetShipmentLabels(ShipmentLabelRequest shipmentLabelRequest)
        {
            ezship.Account.Server = ServiceUrls.ShipUrl;
            ezship.LabelImageType = (ezship.Provider == EzshipProviders.pFedEx) ? EzshipLabelImageTypes.itPNG : EzshipLabelImageTypes.itGIF;

            ServiceTypes serviceType;

            WA.Enum <ServiceTypes> .TryParse(shipmentLabelRequest.ServiceType, out serviceType);

            ezship.ServiceType = serviceType;

            //---- SENDER
            var senderContact = shipmentLabelRequest.SenderContact;

            ezship.SenderContact.FirstName = senderContact.FirstName;
            ezship.SenderContact.LastName  = senderContact.LastName;
            ezship.SenderContact.Phone     = senderContact.Phone;
            ezship.SenderContact.Company   = senderContact.CompanyName;

            var senderAddress = shipmentLabelRequest.SenderAddress;

            if (!string.IsNullOrEmpty(senderAddress.Address1))
            {
                ezship.SenderAddress.Address1 = senderAddress.Address1;
            }

            if (!string.IsNullOrEmpty(senderAddress.Address2))
            {
                ezship.SenderAddress.Address2 = senderAddress.Address2;
            }

            if (!string.IsNullOrEmpty(senderAddress.City))
            {
                ezship.SenderAddress.City = senderAddress.City;
            }

            if (!string.IsNullOrEmpty(senderAddress.Region))
            {
                ezship.SenderAddress.State = senderAddress.Region;
            }

            if (!string.IsNullOrEmpty(senderAddress.PostalCode))
            {
                ezship.SenderAddress.ZipCode = senderAddress.PostalCode;
            }

            if (!string.IsNullOrEmpty(senderAddress.CountryCode))
            {
                ezship.SenderAddress.CountryCode = senderAddress.CountryCode;
            }

            //---- RECIPIENT
            var recipientContact = shipmentLabelRequest.RecipientContact;

            ezship.RecipientContact.FirstName = recipientContact.FirstName;
            ezship.RecipientContact.LastName  = recipientContact.LastName;
            ezship.RecipientContact.Phone     = recipientContact.Phone;
            // FedEx and UPS both require the 'Company' field for the recipient, so we'll set it to LastName if it's not already set
            ezship.RecipientContact.Company = string.IsNullOrEmpty(recipientContact.CompanyName) ? recipientContact.LastName : recipientContact.CompanyName;

            var recipientAddress = shipmentLabelRequest.RecipientAddress;

            if (recipientAddress.IsResidential)
            {
                ezship.RecipientAddress.AddressFlags = 0x00000002; // Residential
            }
            else
            {
                ezship.RecipientAddress.AddressFlags = 0; // not set (defaults to Commercial)
            }
            if (!string.IsNullOrEmpty(recipientAddress.Address1))
            {
                ezship.RecipientAddress.Address1 = recipientAddress.Address1;
            }

            if (!string.IsNullOrEmpty(recipientAddress.Address2))
            {
                ezship.RecipientAddress.Address2 = recipientAddress.Address2;
            }

            if (!string.IsNullOrEmpty(recipientAddress.City))
            {
                ezship.RecipientAddress.City = recipientAddress.City;
            }

            if (!string.IsNullOrEmpty(recipientAddress.Region))
            {
                ezship.RecipientAddress.State = recipientAddress.Region;
            }

            if (!string.IsNullOrEmpty(recipientAddress.PostalCode))
            {
                ezship.RecipientAddress.ZipCode = recipientAddress.PostalCode;
            }

            if (!string.IsNullOrEmpty(recipientAddress.CountryCode))
            {
                ezship.RecipientAddress.CountryCode = recipientAddress.CountryCode;
            }

            //EzshipLabelImageTypes labelImageType = new EzshipLabelImageTypes();

            //if(ezship.Provider == EzshipProviders.pFedEx)
            //{
            //    var fedExService = DataModel.ShippingService.FindOrCreateNew(storeId, ShippingProviderType.FedEx);
            //    Dictionary<string, string> fedexSettings = fedExService.GetSettingsDictionary();
            //    var labelImageTypeSetting = fedexSettings.TryGetValueOrDefault("labelImageType", "itGIF");
            //     labelImageType = WA.Enum<EzshipLabelImageTypes>.Parse(labelImageTypeSetting);
            //}
            //else
            //{
            //    ezship.LabelImageType = EzshipLabelImageTypes.itGIF;
            //}


            LabelFileType labelFileType = (ezship.Provider == EzshipProviders.pFedEx) ? LabelFileType.Png : LabelFileType.Gif;

            if (ezship.Provider == EzshipProviders.pUPS)
            {
                ezship.LabelImageType = EzshipLabelImageTypes.itGIF;
            }

            const TPackagingTypes packagingType = TPackagingTypes.ptYourPackaging;

            foreach (var packageDetail in shipmentLabelRequest.Packages)
            {
                ezship.Packages.Add(new PackageDetail()
                {
                    PackagingType = packagingType,
                    Weight        = Math.Max(1, packageDetail.Weight).ToString("F1", UnitedStatesCulture),
                    Length        = Convert.ToInt32(Math.Max(1, packageDetail.Length)),
                    Width         = Convert.ToInt32(Math.Max(1, packageDetail.Width)),
                    Height        = Convert.ToInt32(Math.Max(1, packageDetail.Height)),
                    Reference     = string.Format(@"PO:{0}", packageDetail.ReferenceCode)
                });
            }

            try
            {
                ezship.GetShipmentLabels();
            }
            catch (InShipEzshipException ex)
            {
                ezship.RecipientAddress.AddressFlags = 0;
                ezship.GetShipmentLabels();
            }

            var shippingLog = new ShippingLog
            {
                RequestSent         = ezrater.Config("FullRequest"),
                ShippingRequestType = "ShippingLabels",
                ResponseReceived    = ezrater.Config("FullResponse"),
                CartId  = cartId,
                OrderId = orderId
            };

            shippingLog.Save();


            var response = new ShipmentLabelResponse();

            response.MasterTrackingNumber = ezship.MasterTrackingNumber;
            bool copyPackageDetails = (ezship.Packages.Count == shipmentLabelRequest.Packages.Count);

            for (int i = 0; i < ezship.Packages.Count; i++)
            {
                var package = ezship.Packages[i];
                response.Labels.Add(new ShipmentLabel()
                {
                    TrackingNumber = package.TrackingNumber,
                    LabelFile      = package.ShippingLabelB,
                    LabelFileType  = labelFileType,

                    PackageDetail = copyPackageDetails ? shipmentLabelRequest.Packages[i] : null
                });
            }

            return(response);

            //if (ezship1.Provider == EzshipProviders.pFedEx)
            //{
            //    ezship1.LabelImageType = EzshipLabelImageTypes.itPNG;
            //    ezship1.Packages[0].ShippingLabelFile = "test_label.png";
            //}
            //else
            //{
            //    ezship1.LabelImageType = EzshipLabelImageTypes.itGIF;
            //    ezship1.Packages[0].ShippingLabelFile = "test_label.gif";
            //}

            //ezship1.GetShipmentLabels();

            //lblLabelFile.Text = ezship1.Packages[0].ShippingLabelFile;
            //lblTrackingNumber.Text = ezship1.Packages[0].TrackingNumber;
        }