public bool CheckCapabilities(string currency, CurrencyCapabilities capabilitiesToCheck)
        {
            if (null == currency)
            {
                throw new ArgumentNullException(nameof(currency));
            }

            if (CurrencyCapabilities.None == capabilitiesToCheck)
            {
                return(true);
            }

            if (!_currencyRegister.TryGetValue(currency, out var capabilities))
            {
                Logger.ErrorFormat("Currency {0} not supported.", currency);
                return(false);
            }

            foreach (var flag in GetFlags(capabilitiesToCheck))
            {
                if (!capabilities.HasFlag(flag))
                {
                    return(false);
                }
            }

            return(true);
        }
 private static IEnumerable <CurrencyCapabilities> GetFlags(CurrencyCapabilities flags)
 {
     foreach (CurrencyCapabilities singleFlag in Enum.GetValues(typeof(CurrencyCapabilities)))
     {
         if (flags.HasFlag(singleFlag))
         {
             yield return(singleFlag);
         }
     }
 }
        public IEnumerable <string> SelectCurrencies(CurrencyCapabilities currencyCapabilities)
        {
            var currencies = new List <string>();

            foreach (string currency in _currencyRegister.Keys)
            {
                if (CurrencyCapabilities.None != currencyCapabilities)
                {
                    if (!CheckCapabilities(currency, currencyCapabilities))
                    {
                        continue;
                    }
                }

                currencies.Add(currency);
            }

            return(currencies);
        }
Пример #4
0
        public static List <AccountDropDownListItemTemplate> BuildCurrencyDropDownListItemTemplates(
            IUnityContainer container, CurrencyCapabilities currencyCapabilities)
        {
            if (null == container)
            {
                throw new ArgumentNullException(nameof(container));
            }

            var currencyService = container.Resolve <ICurrencyService>();

            var currencies = currencyService.SelectCurrencies(currencyCapabilities);

            var result = new List <AccountDropDownListItemTemplate>();

            foreach (var currency in currencies)
            {
                var currencyWithPrefix = currencyService.AddPrefix(currency);
                result.Add(new AccountDropDownListItemTemplate(currencyWithPrefix));
            }

            return(result);
        }