private static string ReadItemIntoRow(FileExportSpecification spec, object item) { var columnDelimiter = spec.ColumnDelimiter; var sb = new StringBuilder(); var allPropertyValues = spec.GetPropertiesForType(item.GetType()).Values.ToList(); for (var i = 0; i < allPropertyValues.Count; i++) { var property = allPropertyValues[i]; string formattedValue = property.GetFormattedValue(item); if (formattedValue.Contains(columnDelimiter)) { formattedValue = spec.OnDelimiterFoundInValue(property.PropertyName, columnDelimiter, formattedValue); } sb.Append(formattedValue); if (i < (allPropertyValues.Count - 1)) { sb.Append(columnDelimiter); } } return(sb.ToString()); }
private static string WriteTheHeader(Type type, FileExportSpecification spec) { var sb = new StringBuilder(); var allPropertyValues = spec.GetPropertiesForType(type).Values.ToList(); for (var i = 0; i < allPropertyValues.Count; i++) { var property = allPropertyValues[i]; string formattedValue = property.GetFormattedHeader(); sb.Append(formattedValue); if (i < (allPropertyValues.Count - 1)) { sb.Append(spec.ColumnDelimiter); } } return(sb.ToString()); }