示例#1
0
 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)));
 }
示例#2
0
     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)));
     }
 }
示例#3
0
        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)
                       ));
        }
示例#4
0
        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)
                       ));
        }
示例#5
0
        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());
        }
示例#6
0
        public static string DataToYaml(List <Dictionary <string, object> > datatable, YamlColumnNamesType yamlColumnNames = null)
        {
            var writer = new StringWriter();

            DataToYaml(writer, datatable, yamlColumnNames);
            return(writer.ToString());
        }
示例#7
0
 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);
     }
 }
示例#8
0
        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);
        }
示例#9
0
        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);
        }