/// <summary> /// Sets shipment details /// </summary> /// <param name="request"></param> protected override sealed void SetShipmentDetails(RateRequest request) { request.RequestedShipment = new RequestedShipment(); request.RequestedShipment.ShipTimestamp = DateTime.Now; // Shipping date and time request.RequestedShipment.ShipTimestampSpecified = true; request.RequestedShipment.DropoffType = DropoffType.REGULAR_PICKUP; //Drop off types are BUSINESS_SERVICE_CENTER, DROP_BOX, REGULAR_PICKUP, REQUEST_COURIER, STATION request.RequestedShipment.DropoffTypeSpecified = true; request.RequestedShipment.PackagingType = PackagingType.YOUR_PACKAGING; request.RequestedShipment.PackagingTypeSpecified = true; SetOrigin(request); SetDestination(request); SetPackageLineItems(request); request.RequestedShipment.RateRequestTypes = new RateRequestType[1]; request.RequestedShipment.RateRequestTypes[0] = RateRequestType.LIST; request.RequestedShipment.PackageCount = Shipment.PackageCount.ToString(); }
private RateRequest CreateRateRequest() { // Build the RateRequest var request = new RateRequest(); request.WebAuthenticationDetail = new WebAuthenticationDetail(); request.WebAuthenticationDetail.UserCredential = new WebAuthenticationCredential(); request.WebAuthenticationDetail.UserCredential.Key = _key; request.WebAuthenticationDetail.UserCredential.Password = _password; request.ClientDetail = new ClientDetail(); request.ClientDetail.AccountNumber = _accountNumber; request.ClientDetail.MeterNumber = _meterNumber; request.Version = new VersionId(); request.ReturnTransitAndCommit = true; request.ReturnTransitAndCommitSpecified = true; SetShipmentDetails(request); return request; }
private 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].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; // 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"; i++; } }
private void SetOrigin(RateRequest request) { request.RequestedShipment.Shipper = new Party(); request.RequestedShipment.Shipper.Address = new RateServiceWebReference.Address(); request.RequestedShipment.Shipper.Address.StreetLines = new string[1] {""}; request.RequestedShipment.Shipper.Address.City = ""; request.RequestedShipment.Shipper.Address.StateOrProvinceCode = ""; request.RequestedShipment.Shipper.Address.PostalCode = Shipment.OriginAddress.PostalCode; request.RequestedShipment.Shipper.Address.CountryCode = Shipment.OriginAddress.CountryCode; }
private void SetDestination(RateRequest request) { request.RequestedShipment.Recipient = new Party(); request.RequestedShipment.Recipient.Address = new RateServiceWebReference.Address(); request.RequestedShipment.Recipient.Address.StreetLines = new string[1] {""}; request.RequestedShipment.Recipient.Address.City = ""; request.RequestedShipment.Recipient.Address.StateOrProvinceCode = ""; request.RequestedShipment.Recipient.Address.PostalCode = Shipment.DestinationAddress.PostalCode; request.RequestedShipment.Recipient.Address.CountryCode = Shipment.DestinationAddress.CountryCode; }
/// <summary> /// Sets shipment details /// </summary> /// <param name="request"></param> protected abstract void SetShipmentDetails(RateRequest request);
/// <summary> /// Sets the origin /// </summary> /// <param name="request"></param> protected void SetOrigin(RateRequest request) { request.RequestedShipment.Shipper = new Party(); request.RequestedShipment.Shipper.Address = new RateServiceWebReference.Address(); request.RequestedShipment.Shipper.Address.StreetLines = new string[1] { "" }; request.RequestedShipment.Shipper.Address.City = ""; request.RequestedShipment.Shipper.Address.StateOrProvinceCode = ""; request.RequestedShipment.Shipper.Address.PostalCode = Shipment.OriginAddress.PostalCode; request.RequestedShipment.Shipper.Address.CountryCode = Shipment.OriginAddress.CountryCode; request.RequestedShipment.Shipper.Address.Residential = Shipment.OriginAddress.IsResidential; request.RequestedShipment.Shipper.Address.ResidentialSpecified = Shipment.OriginAddress.IsResidential; }
/// <summary> /// Sets SmartPost details /// </summary> /// <param name="request"></param> private void SetSmartPostDetails(RateRequest request) { request.RequestedShipment.ServiceType = ServiceType.SMART_POST; request.RequestedShipment.ServiceTypeSpecified = true; request.RequestedShipment.SmartPostDetail = new SmartPostShipmentDetail { HubId = _hubId, Indicia = SmartPostIndiciaType.PARCEL_SELECT, IndiciaSpecified = true }; // Handle the various SmartPost Incidia scenarios // The ones we should mainly care about are as follows: // PRESORTED_STANDARD (less than 1 LB) // PARCEL_SELECT (1 LB through 70 LB) var weight = request.RequestedShipment.GetTotalWeight(); if (weight?.Value < 1.0m) request.RequestedShipment.SmartPostDetail.Indicia = SmartPostIndiciaType.PRESORTED_STANDARD; }
/// <remarks/> public void getRatesAsync(RateRequest RateRequest, object userState) { if ((this.getRatesOperationCompleted == null)) { this.getRatesOperationCompleted = new System.Threading.SendOrPostCallback(this.OngetRatesOperationCompleted); } this.InvokeAsync("getRates", new object[] { RateRequest}, this.getRatesOperationCompleted, userState); }
/// <remarks/> public void getRatesAsync(RateRequest RateRequest) { this.getRatesAsync(RateRequest, null); }