/// <summary> /// Sets package line items /// </summary> /// <param name="request"></param> protected void SetPackageLineItems(RateRequest request) { request.RequestedShipment.RequestedPackageLineItems = new RequestedPackageLineItem[Shipment.PackageCount]; var i = 0; foreach (var package in Shipment.Packages) { request.RequestedShipment.RequestedPackageLineItems[i] = new RequestedPackageLineItem() { SequenceNumber = (i + 1).ToString(), GroupPackageCount = "1", // Package weight Weight = new Weight() { Units = WeightUnits.LB, UnitsSpecified = true, Value = package.RoundedWeight, ValueSpecified = true }, // Package dimensions Dimensions = new Dimensions() { Length = package.RoundedLength.ToString(), Width = package.RoundedWidth.ToString(), Height = package.RoundedHeight.ToString(), Units = LinearUnits.IN, UnitsSpecified = true } }; if (_allowInsuredValues) { // package insured value request.RequestedShipment.RequestedPackageLineItems[i].InsuredValue = new Money { Amount = package.InsuredValue, AmountSpecified = package.InsuredValue > 0, Currency = "USD" }; } if (package.SignatureRequiredOnDelivery) { var signatureOptionDetail = new SignatureOptionDetail { OptionType = SignatureOptionType.DIRECT }; var specialServicesRequested = new PackageSpecialServicesRequested() { SignatureOptionDetail = signatureOptionDetail }; request.RequestedShipment.RequestedPackageLineItems[i].SpecialServicesRequested = specialServicesRequested; } i++; } }
/// <summary> /// Sets package line items /// </summary> /// <param name="request"></param> protected void SetPackageLineItems(RateRequest request) { request.RequestedShipment.RequestedPackageLineItems = new RequestedPackageLineItem[Shipment.PackageCount]; request.RequestedShipment.PreferredCurrency = Shipment.Packages.FirstOrDefault()?.Currency ?? "USD"; var i = 0; foreach (var package in Shipment.Packages) { request.RequestedShipment.RequestedPackageLineItems[i] = new RequestedPackageLineItem { SequenceNumber = (i + 1).ToString(), GroupPackageCount = "1", Weight = new Weight { Units = WeightUnits.LB, Value = package.Weight }, Dimensions = new Dimensions { Length = package.RoundedLength.ToString("0.##", CultureInfo.InvariantCulture), Width = package.RoundedWidth.ToString("0.##", CultureInfo.InvariantCulture), Height = package.RoundedHeight.ToString("0.##", CultureInfo.InvariantCulture), Units = LinearUnits.IN } }; if (_allowInsuredValues) { // package insured value request.RequestedShipment.RequestedPackageLineItems[i].InsuredValue = new Money { Amount = package.InsuredValue, AmountSpecified = true, Currency = package.Currency ?? "USD" }; } if (package.SignatureRequiredOnDelivery) { var signatureOptionDetail = new SignatureOptionDetail { OptionType = SignatureOptionType.DIRECT }; var specialServicesRequested = new PackageSpecialServicesRequested() { SignatureOptionDetail = signatureOptionDetail }; request.RequestedShipment.RequestedPackageLineItems[i].SpecialServicesRequested = specialServicesRequested; } i++; } }
/// <summary> /// Sets package line items /// </summary> /// <param name="request"></param> protected void SetPackageLineItems(RateRequest request) { request.RequestedShipment.RequestedPackageLineItems = new RequestedPackageLineItem[Shipment.PackageCount]; var i = 0; foreach (var package in Shipment.Packages) { request.RequestedShipment.RequestedPackageLineItems[i] = new RequestedPackageLineItem(); request.RequestedShipment.RequestedPackageLineItems[i].SequenceNumber = (i + 1).ToString(); request.RequestedShipment.RequestedPackageLineItems[i].GroupNumber = "1"; request.RequestedShipment.RequestedPackageLineItems[i].GroupPackageCount = "1"; // package weight request.RequestedShipment.RequestedPackageLineItems[i].Weight = new Weight(); request.RequestedShipment.RequestedPackageLineItems[i].Weight.Units = WeightUnits.LB; request.RequestedShipment.RequestedPackageLineItems[i].Weight.Value = package.RoundedWeight; // package dimensions request.RequestedShipment.RequestedPackageLineItems[i].Dimensions = new Dimensions(); request.RequestedShipment.RequestedPackageLineItems[i].Dimensions.Length = package.RoundedLength.ToString(); request.RequestedShipment.RequestedPackageLineItems[i].Dimensions.Width = package.RoundedWidth.ToString(); request.RequestedShipment.RequestedPackageLineItems[i].Dimensions.Height = package.RoundedHeight.ToString(); request.RequestedShipment.RequestedPackageLineItems[i].Dimensions.Units = LinearUnits.IN; if (_allowInsuredValues) { // package insured value request.RequestedShipment.RequestedPackageLineItems[i].InsuredValue = new Money(); request.RequestedShipment.RequestedPackageLineItems[i].InsuredValue.Amount = package.InsuredValue; request.RequestedShipment.RequestedPackageLineItems[i].InsuredValue.AmountSpecified = true; request.RequestedShipment.RequestedPackageLineItems[i].InsuredValue.Currency = "USD"; } if (package.SignatureRequiredOnDelivery) { var signatureOptionDetail = new SignatureOptionDetail { OptionType = SignatureOptionType.DIRECT }; var specialServicesRequested = new PackageSpecialServicesRequested() { SignatureOptionDetail = signatureOptionDetail }; request.RequestedShipment.RequestedPackageLineItems[i].SpecialServicesRequested = specialServicesRequested; } i++; } }
public static RateRequest CreateRateRequest(Shipment detail) { var request = new RateRequest { // set the credentails WebAuthenticationDetail = new WebAuthenticationDetail { UserCredential = getWebAuthenticationCredential(), ParentCredential = getWebAuthenticationCredential(), }, ClientDetail = getClientDetail(), // set the transaction details TransactionDetail = new TransactionDetail { CustomerTransactionId = detail.TransactionId, }, Version = new VersionId(), ReturnTransitAndCommit = true, ReturnTransitAndCommitSpecified = true, // set the shipment details RequestedShipment = new RequestedShipment { ShipTimestamp = DateTime.Now, ShipTimestampSpecified = true, //ServiceType = ServiceType.FEDEX_GROUND, // Service types are STANDARD_OVERNIGHT, PRIORITY_OVERNIGHT, FEDEX_GROUND ... //ServiceTypeSpecified = true, // set the shipping origin or the sender Shipper = new Party { Address = new RateServiceWebReference.Address { StreetLines = new string[] { detail.OriginAddress.Line1, detail.OriginAddress.Line2 }, City = detail.OriginAddress.City, StateOrProvinceCode = detail.OriginAddress.StateOrRegion, PostalCode = detail.OriginAddress.PostalCode, CountryCode = detail.OriginAddress.CountryCode } }, // set the recepient or the destination information Recipient = new Party { Address = new RateServiceWebReference.Address { StreetLines = new string[] { detail.DestinationAddress.Line1, detail.DestinationAddress.Line2 }, City = detail.DestinationAddress.City, StateOrProvinceCode = detail.DestinationAddress.StateOrRegion, PostalCode = detail.DestinationAddress.PostalCode, CountryCode = detail.DestinationAddress.CountryCode } }, }, }; request.RequestedShipment.RequestedPackageLineItems = new RequestedPackageLineItem[detail.Packages.Count]; // iterate to each package items and add it for (var i = 0; i < detail.Packages.Count; i++) { var package = detail.Packages[i]; request.RequestedShipment.RequestedPackageLineItems[i] = new RequestedPackageLineItem(); request.RequestedShipment.RequestedPackageLineItems[i].SequenceNumber = (i + 1).ToString(); // package sequence number request.RequestedShipment.RequestedPackageLineItems[i].GroupPackageCount = "1"; // group counter // package weight request.RequestedShipment.RequestedPackageLineItems[i].Weight = new Weight(); request.RequestedShipment.RequestedPackageLineItems[i].Weight.Units = WeightUnits.LB; request.RequestedShipment.RequestedPackageLineItems[i].Weight.UnitsSpecified = true; request.RequestedShipment.RequestedPackageLineItems[i].Weight.Value = package.Weight; request.RequestedShipment.RequestedPackageLineItems[i].Weight.ValueSpecified = true; // package dimensions request.RequestedShipment.RequestedPackageLineItems[i].Dimensions = new Dimensions(); request.RequestedShipment.RequestedPackageLineItems[i].Dimensions.Length = package.Length.ToString(); request.RequestedShipment.RequestedPackageLineItems[i].Dimensions.Width = package.Width.ToString(); request.RequestedShipment.RequestedPackageLineItems[i].Dimensions.Height = package.Height.ToString(); request.RequestedShipment.RequestedPackageLineItems[i].Dimensions.Units = LinearUnits.IN; request.RequestedShipment.RequestedPackageLineItems[i].Dimensions.UnitsSpecified = true; if (_allowInsuredValues) { // package insured value request.RequestedShipment.RequestedPackageLineItems[i].InsuredValue = new Money(); request.RequestedShipment.RequestedPackageLineItems[i].InsuredValue.Amount = package.InsuredValue; request.RequestedShipment.RequestedPackageLineItems[i].InsuredValue.AmountSpecified = true; request.RequestedShipment.RequestedPackageLineItems[i].InsuredValue.Currency = "USD"; } if (package.SignatureRequiredOnDelivery) { var signatureOptionDetail = new SignatureOptionDetail { OptionType = SignatureOptionType.DIRECT }; var specialServicesRequested = new PackageSpecialServicesRequested() { SignatureOptionDetail = signatureOptionDetail }; request.RequestedShipment.RequestedPackageLineItems[i].SpecialServicesRequested = specialServicesRequested; } } // set the total package items to ship request.RequestedShipment.PackageCount = detail.Packages.Count.ToString(); request.RequestedShipment.RateRequestTypes = new RateRequestType[1]; request.RequestedShipment.RateRequestTypes[0] = RateRequestType.LIST; // multiple rates return(request); }