internal static FileEntry ToFile <T>(FileKind kind, T value)
        {
            var filename = FileEntry.GetFilenameForKind(kind);

            string output;

            if (Utilities.IsYamlFile(filename))
            {
                StringWriter tw = new StringWriter();
                YamlPocoSerializer.CanonicalWrite(tw, value);
                output = tw.ToString();
            }
            else
            {
                var jsonStr = JsonSerializer.Serialize(value, Utilities._jsonOpts);

                output = JsonNormalizer.Normalize(jsonStr);
            }

            var bytes = Encoding.UTF8.GetBytes(output);

            return(new FileEntry {
                Name = filename, RawBytes = bytes
            });
        }
Esempio n. 2
0
 public T ToObject <T>()
 {
     if (Utilities.IsYamlFile(_fullpath))
     {
         using (var textReader = new StreamReader(_fullpath))
         {
             var obj = YamlPocoSerializer.Read <T>(textReader);
             return(obj);
         }
     }
     else
     {
         var str = File.ReadAllText(_fullpath);
         return(JsonSerializer.Deserialize <T>(str, Utilities._jsonOpts));
     }
 }
 private static T ToObject <T>(ZipArchiveEntry entry)
 {
     if (entry.Name.EndsWith(".yaml", StringComparison.OrdinalIgnoreCase))
     {
         using (var stream = entry.Open())
             using (var textReader = new StreamReader(stream))
             {
                 var obj = YamlPocoSerializer.Read <T>(textReader);
                 return(obj);
             }
     }
     else
     {
         var je = entry.ToJson();
         return(je.ToObject <T>());
     }
 }
Esempio n. 4
0
 public void WriteAllJson <T>(string subdir, FilePath filename, T obj)
 {
     if (Utilities.IsYamlFile(filename))
     {
         using (var tw = new StringWriter())
         {
             YamlPocoSerializer.CanonicalWrite(tw, obj);
             WriteAllText(subdir, filename, tw.ToString());
         }
     }
     else
     {
         var text = JsonSerializer.Serialize <T>(obj, Utilities._jsonOpts);
         text = JsonNormalizer.Normalize(text);
         WriteAllText(subdir, filename, text);
     }
 }