86 lines
2.6 KiB
C#
86 lines
2.6 KiB
C#
using System;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using Microsoft.EntityFrameworkCore;
|
|
using GZTW.Pecklist.Models;
|
|
using Newtonsoft.Json;
|
|
using Newtonsoft.Json.Linq;
|
|
using System.IO;
|
|
|
|
namespace GZTW.Pecklist.Util
|
|
{
|
|
public static class FoodooImporter
|
|
{
|
|
public static void Import(PecklistContext ct)
|
|
{
|
|
//open and read in the GZListServerBackup.bak file into a json object
|
|
//https://www.newtonsoft.com/json/help/html/LINQtoJSON.htm
|
|
string sfoo = GetBackupFile();
|
|
JArray jin = JArray.Parse(sfoo);
|
|
JArray jout = new JArray();
|
|
|
|
foreach (JObject i in jin)
|
|
{
|
|
JObject o = new JObject();
|
|
o["name"] = (string)i["name"];
|
|
o["id"] = Util.ShortId.Generate();
|
|
o["name_v"] = (long)i["name_v"];
|
|
o["v"] = (long)i["v"];
|
|
JArray oitems = new JArray();
|
|
foreach (JObject l in i["items"])
|
|
{
|
|
JObject oitem = new JObject();
|
|
oitem["id"] = Util.ShortId.Generate();
|
|
oitem["completed"] = (bool)l["completed"];
|
|
oitem["text"] = (string)l["text"];
|
|
oitem["v"] = (long)l["v"];
|
|
var highlight = (bool?)l["highlight"];
|
|
if (highlight == null)
|
|
{
|
|
oitem["priority"] = 1;//default priority
|
|
}
|
|
else
|
|
{
|
|
oitem["priority"] = 3;//highest priority
|
|
}
|
|
oitems.Add(oitem);
|
|
}
|
|
o["items"] = oitems;
|
|
jout.Add(o);
|
|
}
|
|
|
|
//write it into the db
|
|
ListData ldat = new ListData();
|
|
|
|
//this is the most compact way to write the json out as text
|
|
ldat.TheList = JsonConvert.SerializeObject(jout);
|
|
|
|
ct.ListData.Add(ldat);
|
|
ct.SaveChanges();
|
|
}
|
|
|
|
|
|
|
|
private static string GetBackupFile()
|
|
{
|
|
try
|
|
{ // Open the text file using a stream reader.
|
|
using (StreamReader sr = new StreamReader("./db/GZListServerBackup.bak"))
|
|
{
|
|
// Read the stream to a string, and write the string to the console.
|
|
String line = sr.ReadToEnd();
|
|
return line;
|
|
}
|
|
}
|
|
catch
|
|
{
|
|
return null;
|
|
}
|
|
|
|
}
|
|
|
|
//--------
|
|
}
|
|
} |