Beispiel #1
0
        /// <summary>
        /// Returns a collection of all <see cref="IShipmentRateQuote"/> that are available for the <see cref="IShipment"/>
        /// </summary>
        /// <param name="shipment">The <see cref="IShipment"/> to quote</param>
        /// <returns>A collection of <see cref="IShipmentRateQuote"/></returns>
        public IEnumerable <IShipmentRateQuote> GetShipRateQuotesForShipment(IShipment shipment)
        {
            var providers = GatewayProviderResolver.GetActivatedProviders <ShippingGatewayProviderBase>() as IEnumerable <ShippingGatewayProviderBase>;
            var quotes    = new List <IShipmentRateQuote>();

            if (providers == null)
            {
                return(quotes);
            }

            foreach (var provider in providers)
            {
                quotes.AddRange(provider.QuoteShippingGatewayMethodsForShipment(shipment));
            }
            return(quotes.OrderBy(x => x.Rate));
        }
        /// <summary>
        /// Gets a list of all possible Payment Methods
        /// </summary>
        /// <returns>A collection of <see cref="IPaymentGatewayMethod"/>s</returns>
        public IEnumerable <IPaymentGatewayMethod> GetPaymentGatewayMethods()
        {
            var paymentProviders = GatewayProviderResolver.GetActivatedProviders <PaymentGatewayProviderBase>() as IEnumerable <PaymentGatewayProviderBase>;

            var methods = new List <IPaymentGatewayMethod>();

            if (paymentProviders == null)
            {
                return(methods);
            }

            foreach (var provider in paymentProviders)
            {
                methods.AddRange(provider.PaymentMethods.Select(x => provider.GetPaymentGatewayMethodByKey(x.Key)));
            }

            return(methods);
        }