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); }
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); }