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