BotGenerator/Common/JsonWriter.cs
Chomp 8237fdbe67 Refactor to use common.models project
Add project for finding unique bot templates from live data
2021-09-18 22:36:59 +01:00

53 lines
1.9 KiB
C#

using Common.Models.Output;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.IO;
using Common.Models.Input;
namespace Common
{
public class JsonWriter
{
private readonly string _workingPath;
private readonly string _outputFolderName;
public JsonWriter(string workingPath, string outputFolderName)
{
_workingPath = workingPath;
_outputFolderName = outputFolderName;
}
public void WriteJson(List<Bot> bots)
{
var outputPath = $"{_workingPath}\\{_outputFolderName}";
DiskHelpers.CreateDirIfDoesntExist(outputPath);
foreach (var bot in bots)
{
if (bot.appearance.body.Count == 0) // only process files that have data in them, no body = no dumps
{
LoggingHelpers.LogToConsole($"Unable to process bot type: {bot.botType}, skipping", ConsoleColor.DarkRed);
continue;
}
var output = JsonConvert.SerializeObject(bot, Formatting.Indented);
Console.WriteLine($"Writing json file {bot.botType} to {outputPath}");
File.WriteAllText($"{outputPath}\\{bot.botType.ToString().ToLower()}.json", output);
Console.WriteLine($"file {bot.botType} written to {outputPath}");
}
}
public void WriteJson(List<Datum> bots, string fileName)
{
var outputPath = $"{_workingPath}\\{_outputFolderName}";
DiskHelpers.CreateDirIfDoesntExist(outputPath);
var output = JsonConvert.SerializeObject(bots, Formatting.Indented, new JsonSerializerSettings
{
NullValueHandling = NullValueHandling.Ignore
});
File.WriteAllText($"{outputPath}\\{fileName.ToLower()}.json", output);
}
}
}