/// <summary>Initializes the converter with an attribute</summary>
        public override void Initialize(CsvConverterAttribute attribute,
                                        IDefaultTypeConverterFactory defaultFactory)
        {
            base.Initialize(attribute, defaultFactory);

            if (!(attribute is CsvConverterNumberAttribute oneAttribute))
            {
                throw new CsvConverterAttributeException(
                          $"Please use the {nameof(CsvConverterNumberAttribute)} " +
                          $"attribute with the {nameof(CsvConverterPercentage)} converter.");
            }

            if (string.IsNullOrWhiteSpace(oneAttribute.StringFormat))
            {
                int precession = oneAttribute.NumberOfDecimalPlaces - 2;
                if (precession < 0)
                {
                    precession = 0;
                }
                oneAttribute.StringFormat = $"P{precession}";
            }

            _decimalConverter = defaultFactory.CreateConverter(typeof(decimal));
            _decimalConverter.Initialize(oneAttribute, defaultFactory);
        }
        private void CreateConverter(Type inputType,
                                     CsvConverterNumberAttribute oneAttribute,
                                     IDefaultTypeConverterFactory defaultFactory)
        {
            ICsvConverter converter = defaultFactory.CreateConverter(inputType);

            converter.Initialize(oneAttribute, defaultFactory);
            _converterDictionary.Add(inputType, converter);
        }
        /// <summary>Initializes the converter with an attribute</summary>
        public override void Initialize(CsvConverterAttribute attribute, IDefaultTypeConverterFactory defaultFactory)
        {
            base.Initialize(attribute, defaultFactory);

            if (!(attribute is CsvConverterNumberAttribute oneAttribute))
            {
                throw new CsvConverterAttributeException(
                          $"Please use the {nameof(CsvConverterNumberAttribute)} " +
                          $"attribute with the {nameof(CsvConverterDecimalToInt)} converter.");
            }

            _oneAttribute          = oneAttribute;
            _writeDecimalConverter = defaultFactory.CreateConverter(typeof(decimal));
            _writeDecimalConverter.Initialize(oneAttribute, defaultFactory);

            oneAttribute.NumberOfDecimalPlaces = 0;
            _readDecimalConverter = defaultFactory.CreateConverter(typeof(decimal));
            _readDecimalConverter.Initialize(oneAttribute, defaultFactory);
        }