12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- using CsvHelper;
- using CsvHelper.Configuration;
- using CsvHelper.TypeConversion;
- using InABox.Core;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace InABox.Poster.Timberline
- {
- public class TimberlinePosterStringConverter : DefaultTypeConverter
- {
- public int MaxLength { get; set; }
- public TimberlinePosterStringConverter(int maxLength)
- {
- MaxLength = maxLength;
- }
- public override object? ConvertFromString(string? text, IReaderRow row, MemberMapData memberMapData)
- {
- return text;
- }
- public override string? ConvertToString(object? value, IWriterRow row, MemberMapData memberMapData)
- {
- return ConvertString(value, MaxLength);
- }
- public static string ConvertString(object? value, int maxLength)
- {
- var str = value?.ToString() ?? "";
- if (str.Length > maxLength)
- {
- str = str[..maxLength];
- }
- str = str.ReplaceLineEndings(" ");
- return str;
- }
- }
- public class TimberlinePosterDateConverter : DefaultTypeConverter
- {
- public override object? ConvertFromString(string? text, IReaderRow row, MemberMapData memberMapData)
- {
- if (text.IsNullOrWhiteSpace())
- {
- return DateTime.MinValue;
- }
- return DateTime.Parse(text);
- }
- public override string? ConvertToString(object? value, IWriterRow row, MemberMapData memberMapData)
- {
- if(value is DateTime date && date == DateTime.MinValue)
- {
- return "";
- }
- else
- {
- return string.Format("{0:dd/MM/yyyy}", value);
- }
- }
- }
- }
|