Ejemplo n.º 1
0
    public static IEnumerable <T> DeserializeList <T>(string input, CsvConvertSettings settings = null)
        where T : new()
    {
        settings ??= new CsvConvertSettings();

        var parsedRows = Parser.Parser.Parse(input, new Settings
        {
            Separator = settings.Separator
        });

        if (parsedRows.Count <= 1)
        {
            return(new List <T>());
        }

        var headers   = parsedRows[0];
        var accessors = typeof(T)
                        .GetAccessors()
                        .ToDictionary(
            gs => gs.Name,
            gs => gs);

        return(Enumerable.Range(1, parsedRows.Count - 1)
               .Select(rowIndex => new { rowIndex, row = parsedRows[rowIndex] })
               .Select(rowTuple => DeserializeObject <T>(
                           headers,
                           accessors,
                           rowTuple.row,
                           rowTuple.rowIndex,
                           settings.OnError)));
    }
Ejemplo n.º 2
0
    public static string SerializeList <T>(IEnumerable <T> input, CsvConvertSettings settings = null)
    {
        if (input == null)
        {
            return("");
        }

        settings ??= new CsvConvertSettings();

        var accessors = typeof(T)
                        .GetAccessors()
                        .ToList();

        var lines = new List <string>();

        if (settings.EmitHeader)
        {
            lines.Add(string.Join(settings.Separator,
                                  accessors
                                  .Select(accessor => SanitizeOutput(accessor.Name, settings.Separator))));
        }

        lines.AddRange(input
                       .Select(item => string.Join(
                                   settings.Separator,
                                   accessors
                                   .Select(accessor => SanitizeOutput(
                                               accessor.ToString(item),
                                               settings.Separator)))));

        return(lines.Count == (settings.EmitHeader ? 1 : 0)
            ? ""
            : string.Join(Environment.NewLine, lines));
    }
Ejemplo n.º 3
0
 public static string Serialize <T>(T input, CsvConvertSettings settings = null)
 {
     return(input == null
         ? ""
         : SerializeList(new[] { input }, settings));
 }
Ejemplo n.º 4
0
 public static string Serialize <T>(T input, CsvConvertSettings settings = null)
 {
     return(Serializer.Serialize(input, settings));
 }
Ejemplo n.º 5
0
 public static IEnumerable <T> DeserializeList <T>(string input, CsvConvertSettings settings = null)
     where T : new()
 {
     return(Deserializer.DeserializeList <T>(input, settings));
 }
Ejemplo n.º 6
0
 public static T Deserialize <T>(string input, CsvConvertSettings settings = null) where T : new()
 {
     return(Deserializer.Deserialize <T>(input, settings));
 }
Ejemplo n.º 7
0
 public static string SerializeList <T>(IEnumerable <T> input, CsvConvertSettings settings = null)
 {
     return(Serializer.SerializeList(input, settings));
 }
Ejemplo n.º 8
0
 public static T Deserialize <T>(string input, CsvConvertSettings settings = null) where T : new()
 {
     return(DeserializeList <T>(input, settings)
            .FirstOrDefault());
 }