/// <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)); }