This commit is contained in:
86
util/FoodooImporter.cs
Normal file
86
util/FoodooImporter.cs
Normal file
@@ -0,0 +1,86 @@
|
||||
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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//--------
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user