/// <summary>
        /// Helper method to get get the <see cref="IGatewayProviderSettings"/> from the appropriate resolver
        /// </summary>
        /// <param name="gatewayProvider">The <see cref="GatewayProviderDisplay"/></param>
        /// <param name="gatewayProviderType">The gateway provider type</param>
        /// <returns>A <see cref="IGatewayProviderSettings"/> or null</returns>
        private IGatewayProviderSettings GetGatewayProviderFromResolver(GatewayProviderDisplay gatewayProvider, GatewayProviderType gatewayProviderType)
        {
            GatewayProviderBase provider = null;

            switch (gatewayProviderType)
            {
            case GatewayProviderType.Notification:
                provider = _gatewayContext.Notification.GetProviderByKey(gatewayProvider.Key, false);
                break;

            case GatewayProviderType.Payment:
                provider = _gatewayContext.Payment.GetProviderByKey(gatewayProvider.Key, false);
                break;

            case GatewayProviderType.Shipping:
                provider = _gatewayContext.Shipping.GetProviderByKey(gatewayProvider.Key, false);
                break;

            case GatewayProviderType.Taxation:
                provider = _gatewayContext.Taxation.GetProviderByKey(gatewayProvider.Key, false);
                break;
            }

            return(provider != null ? provider.GatewayProviderSettings : null);
        }
 /// <summary>
 /// The resolve core.
 /// </summary>
 /// <param name="source">
 /// The source.
 /// </param>
 /// <returns>
 /// The <see cref="IEnumerable{GatewayResourceDisplay}"/>.
 /// </returns>
 protected override IEnumerable <GatewayResourceDisplay> ResolveCore(GatewayProviderBase source)
 {
     return(source.ListResourcesOffered().Select(x => x.ToGatewayResourceDisplay()));
 }
        /// <summary>
        /// The to taxation gateway provider display.
        /// </summary>
        /// <param name="provider">
        /// The provider.
        /// </param>
        /// <returns>
        /// The <see cref="TaxationGatewayProviderDisplay"/>.
        /// </returns>
        internal static TaxationGatewayProviderDisplay ToTaxationGatewayProviderDisplay(this GatewayProviderBase provider)
        {
            var display = AutoMapper.Mapper.Map <TaxationGatewayProviderDisplay>(provider.GatewayProviderSettings);

            display.TaxationByProductProvider = provider is ITaxationByProductProvider;
            return(display);
        }