示例#1
0
        /// <summary>
        ///  Gets available shipping options
        /// </summary>
        /// <param name="getShippingOptionRequest">A request for getting shipping options</param>
        /// <returns>Represents a response of getting shipping rate options</returns>
        public GetShippingOptionResponse GetShippingOptions(GetShippingOptionRequest getShippingOptionRequest)
        {
            if (getShippingOptionRequest == null)
            {
                throw new ArgumentNullException(nameof(getShippingOptionRequest));
            }

            if (!getShippingOptionRequest.Items?.Any() ?? true)
            {
                return new GetShippingOptionResponse {
                           Errors = new[] { "No shipment items" }
                }
            }
            ;

            if (getShippingOptionRequest.ShippingAddress?.CountryId == null)
            {
                return new GetShippingOptionResponse {
                           Errors = new[] { "Shipping address is not set" }
                }
            }
            ;

            return(_upsService.GetRates(getShippingOptionRequest));
        }