Example #1
0
        public static string ConvertToWords(double number, Action <IConversionOptions> optionsBuilder = null)
        {
            if (_convertersMetadataMap == null)
            {
                throw new InvalidOperationException("Should initialize the Converter first, use Initialize(...)");
            }

            var options = BuildOptions(optionsBuilder);

            if (!_convertersMetadataMap.ContainsKey(options.LanguageCode.ToLower()))
            {
                throw new NotImplementedException($"The NumberToWords Converter for the '{options.LanguageCode}' Not Implemented.");
            }
            var converterType = _convertersMetadataMap[options.LanguageCode];
            var converter     = _convertersCache.GetOrCreate(converterType, () =>
            {
                return((INumberToWordsConverter)Activator.CreateInstance(converterType));
            });

            return(converter.ConvertToWords(number, options));
        }