public YamlData( DataDictionaryList data, bool needSubdivide = false, int preCut = 0, int postCut = 0, string subdivideFilename = null, SeedYamlFormat format = SeedYamlFormat.Hash, bool deletePrevious = false, IEnumerable <string> yamlColumnNames = null ) { Data = data; NeedSubdivide = needSubdivide; PreCut = preCut; PostCut = postCut; SubdivideFilename = subdivideFilename; Format = format; DeletePrevious = deletePrevious; YamlColumnNames = yamlColumnNames == null ? new YamlColumnNamesType() : new YamlColumnNamesType(yamlColumnNames.Select(yamlColumnName => new Wildcard(yamlColumnName))); }
private static IEnumerable <string> GetYamlColumnNamesInRecord(Dictionary <string, object> record, YamlColumnNamesType yamlColumnNames) { if (record == null || yamlColumnNames == null) { return new string[] { } } ; return(record.Keys.Where(key => yamlColumnNames.Contains(key))); } }
private static object ConvertDataTableWithYamlColumns(Dictionary <string, Dictionary <string, object> > datatable, YamlColumnNamesType yamlColumnNames) { var builder = new DeserializerBuilder(); var deserializer = builder.Build(); var yamlColumnNamesInRecord = GetYamlColumnNamesInRecord(datatable.FirstOrDefault().Value, yamlColumnNames); return(datatable.ToDictionary( pair => pair.Key, pair => ConvertValueWithYamlColumns(deserializer, pair.Value, yamlColumnNamesInRecord) )); }
private static object ConvertDataTableWithYamlColumns(IEnumerable <Dictionary <string, object> > datatable, YamlColumnNamesType yamlColumnNames) { var builder = new DeserializerBuilder(); var deserializer = builder.Build(); var yamlColumnNamesInRecord = GetYamlColumnNamesInRecord(datatable.FirstOrDefault(), yamlColumnNames); return(datatable.Select( value => ConvertValueWithYamlColumns(deserializer, value, yamlColumnNamesInRecord) )); }
public static string DataToYaml(DataDictionaryList datatable, SeedYamlFormat format = SeedYamlFormat.Hash, YamlColumnNamesType yamlColumnNames = null) { var writer = new StringWriter(); DataToYaml(writer, datatable, format, yamlColumnNames); return(writer.ToString()); }
public static string DataToYaml(List <Dictionary <string, object> > datatable, YamlColumnNamesType yamlColumnNames = null) { var writer = new StringWriter(); DataToYaml(writer, datatable, yamlColumnNames); return(writer.ToString()); }
public static void DataToYaml(TextWriter writer, DataDictionaryList datatable, SeedYamlFormat format = SeedYamlFormat.Hash, YamlColumnNamesType yamlColumnNames = null) { if (format == SeedYamlFormat.Hash) { DataToYaml(writer, datatable.ToDictionaryDictionary(), yamlColumnNames); } else { DataToYaml(writer, datatable.Table, yamlColumnNames); } }
public static void DataToYaml(TextWriter writer, IEnumerable <Dictionary <string, object> > datatable, YamlColumnNamesType yamlColumnNames = null) { var builder = new SerializerBuilder(); builder.ConfigureDefaultValuesHandling(DefaultValuesHandling.Preserve); var serializer = builder.Build(); var tree = yamlColumnNames == null ? datatable : ConvertDataTableWithYamlColumns(datatable, yamlColumnNames); serializer.Serialize(writer, tree); }
public static void DataToYaml(TextWriter writer, Dictionary <string, Dictionary <string, object> > datatable, YamlColumnNamesType yamlColumnNames = null) { var builder = new SerializerBuilder(); builder.EmitDefaults(); var serializer = builder.Build(); var tree = yamlColumnNames == null ? datatable : ConvertDataTableWithYamlColumns(datatable, yamlColumnNames); serializer.Serialize(writer, tree); }