-
Notifications
You must be signed in to change notification settings - Fork 23
/
Copy pathCoverageJsonWriter.cs
37 lines (33 loc) · 1.14 KB
/
CoverageJsonWriter.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
using Meadow.Core.Utils;
using Meadow.CoverageReport.Models;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
using System;
using System.Collections.Generic;
using System.Globalization;
using System.IO;
using System.Text;
namespace Meadow.CoverageReport
{
class CoverageJsonWriter
{
readonly IndexViewModel _indexViewModel;
public CoverageJsonWriter(IndexViewModel indexViewModel)
{
_indexViewModel = indexViewModel;
}
public void WriteJson(Stream outputStream)
{
var serializer = new JsonSerializer();
serializer.Formatting = Formatting.Indented;
serializer.Culture = CultureInfo.InvariantCulture;
serializer.Converters.Add(new StringEnumConverter());
serializer.NullValueHandling = NullValueHandling.Ignore;
using (var streamWriter = new StreamWriter(outputStream, StringUtil.UTF8, bufferSize: 1024, leaveOpen: true))
using (var jsonTextWriter = new JsonTextWriter(streamWriter))
{
serializer.Serialize(jsonTextWriter, _indexViewModel);
}
}
}
}