/// <summary>
        ///     Add default shipping provider to an order. (the cheapest)
        /// </summary>
        public static void AutoSelectShippingProvider(OrderInfo orderInfo)
        {
            var shippingProvidersForOrder = GetShippingProvidersForOrder(orderInfo);

            if (shippingProvidersForOrder == null || shippingProvidersForOrder.Count == 0)
            {
                Log.Instance.LogDebug("AutoSelectShippingProvider: No shipping providers for order");
                return;
            }

            var shippingMethods = new List <ShippingProviderMethod>();

            foreach (var prov in shippingProvidersForOrder)
            {
                shippingMethods.AddRange(prov.ShippingProviderMethods);
            }

            var shippingProviderMethod   = shippingMethods.OrderBy(x => x.PriceInCents).FirstOrDefault();
            var shippingProviderForOrder = shippingProvidersForOrder.FirstOrDefault(x => x.ShippingProviderMethods.Contains(shippingProviderMethod));

            if (shippingProviderForOrder == null)
            {
                Log.Instance.LogDebug("AutoSelectShippingProvider: shippingProviderForOrder == null");
                return;
            }
            if (shippingProviderMethod == null)
            {
                Log.Instance.LogDebug("AutoSelectShippingProvider: No shipping method for " + shippingProviderForOrder.Title);

                return;
            }

            orderInfo.AddShippingProvider(shippingProviderForOrder.Id, shippingProviderMethod.Id);

            orderInfo.ShippingCostsMightBeOutdated = false;
        }