/// <summary>
        /// Prices for row.
        /// </summary>
        /// <param name="row">The row.</param>
        /// <returns></returns>
        public double PriceForRow(UPSEOrderRow row)
        {
            double basePrice = this.BasePriceForRow(row);

            if (this.ComputePriceForQuantity1 && basePrice == 0)
            {
                UPSERowPricing rowPricing = this.RowPricingForRow(row);
                if (rowPricing.HasUnitPrice)
                {
                    return(rowPricing.UnitPriceForQuantityRowPrice(1, 0));
                }
            }

            return(basePrice);
        }
        private UPSEPrice PricingForRow(UPSEOrderRow row)
        {
            if (row.Pricing != null)
            {
                return(row.Pricing);
            }

            UPSERowPricing rowPricing = this.RowPricingForRow(row);

            if (rowPricing != null)
            {
                row.Pricing = rowPricing.Price;
            }

            return(row.Pricing);
        }
        /// <summary>
        /// Bases the price for row.
        /// </summary>
        /// <param name="row">The row.</param>
        /// <returns></returns>
        public double BasePriceForRow(UPSEOrderRow row)
        {
            UPSEPrice pricing = this.PricingForRow(row);

            return(pricing?.UnitPrice ?? 0);
        }
 private UPSERowPricing RowPricingForRow(UPSEOrderRow row)
 {
     return(this.Pricing.PriceForRow(row));
 }