public static string GetDescription(this FileLine fileLine, string format)
        {
            var words       = GetWords(format);
            var @properties = fileLine.GetType().GetProperties();

            foreach (var word in words)
            {
                var value    = "";
                var property = @properties.FirstOrDefault(i => i.Name.EndsWith(word));

                if (property != null)
                {
                    var descriptionAttribute = property
                                               .GetCustomAttributes(typeof(DescriptionAttribute), false)
                                               .FirstOrDefault() as DescriptionAttribute;

                    if (descriptionAttribute != null)
                    {
                        value = descriptionAttribute.Description;
                    }

                    format = format.Replace(String.Concat("{", $"{ word }", "}"), value.ToString());
                    format = format.Replace(word, value.ToString());
                }
            }

            return(format);
        }
        public static string ToString(this FileLine fileLine, string format)
        {
            var words       = GetWords(format);
            var @properties = fileLine.GetType().GetProperties();

            foreach (var word in words)
            {
                var property = @properties.FirstOrDefault(i => i.Name.EndsWith(word));
                if (property != null)
                {
                    var value = property.GetValue(fileLine).ToString();

                    if (property.PropertyType.IsEnum)
                    {
                        value = ((int)Enum.Parse(property.PropertyType, value)).ToString();
                    }

                    format = format.Replace(String.Concat("{", $"{ word }", "}"), value.ToString());
                    format = format.Replace(word, value.ToString());
                }
            }

            return(format);
        }