Rename SzLib to SzCore
This commit is contained in:
8
SzCore/DataObjects/SzDataObject.cs
Normal file
8
SzCore/DataObjects/SzDataObject.cs
Normal file
@@ -0,0 +1,8 @@
|
||||
namespace SzCore.DataObjects;
|
||||
|
||||
public class SzDataObject
|
||||
{
|
||||
public required string Name {get; set;}
|
||||
public required string Id {get; set;}
|
||||
public Dictionary<string, SzField> Fields {get; set;} = [];
|
||||
}
|
||||
10
SzCore/DataObjects/SzDataObjectTemplate.cs
Normal file
10
SzCore/DataObjects/SzDataObjectTemplate.cs
Normal file
@@ -0,0 +1,10 @@
|
||||
namespace SzCore.DataObjects;
|
||||
|
||||
public class SzDataObjectTemplate
|
||||
{
|
||||
public required string Name {get; set;}
|
||||
public required string Id {get; set;}
|
||||
public Guid? Uuid {get; set;}
|
||||
public required string DataObjectType {get; set;}
|
||||
public Dictionary<string, SzTemplateField> TemplateFields {get; set;} = [];
|
||||
}
|
||||
12
SzCore/DataObjects/SzDataset.cs
Normal file
12
SzCore/DataObjects/SzDataset.cs
Normal file
@@ -0,0 +1,12 @@
|
||||
namespace SzCore.DataObjects;
|
||||
|
||||
public class SzDataset
|
||||
{
|
||||
public required string Name {get; set;}
|
||||
public required string Id {get; set;}
|
||||
public Guid? Uuid {get; set;}
|
||||
|
||||
public required string DataObjectType {get; set;}
|
||||
public required string DataObjectTemplateId {get; set;}
|
||||
public Dictionary<string, SzDataObject> DataObjects {get; set;} = [];
|
||||
}
|
||||
9
SzCore/DataObjects/SzField.cs
Normal file
9
SzCore/DataObjects/SzField.cs
Normal file
@@ -0,0 +1,9 @@
|
||||
namespace SzCore.DataObjects;
|
||||
|
||||
public class SzField
|
||||
{
|
||||
public required string Id {get; set;}
|
||||
public required SzFieldType FieldType {get; set;}
|
||||
public bool IsList {get; set;} = false;
|
||||
public string Value {get; set;} = "";
|
||||
}
|
||||
6
SzCore/DataObjects/SzFieldType.cs
Normal file
6
SzCore/DataObjects/SzFieldType.cs
Normal file
@@ -0,0 +1,6 @@
|
||||
namespace SzCore.DataObjects;
|
||||
|
||||
public enum SzFieldType
|
||||
{
|
||||
Text, Number, Bool, Formula, Ref
|
||||
}
|
||||
11
SzCore/DataObjects/SzTemplateField.cs
Normal file
11
SzCore/DataObjects/SzTemplateField.cs
Normal file
@@ -0,0 +1,11 @@
|
||||
namespace SzCore.DataObjects;
|
||||
|
||||
public class SzTemplateField
|
||||
{
|
||||
public required string Name {get; set;}
|
||||
public required string Id {get; set;}
|
||||
public bool IsList {get; set;} = false;
|
||||
public string DefaultValue {get; set;} = "";
|
||||
public bool IsSpecialType {get; set;} = false;
|
||||
public string SpecialTypeValue {get; set;} = "";
|
||||
}
|
||||
12
SzCore/ISzFileManager.cs
Normal file
12
SzCore/ISzFileManager.cs
Normal file
@@ -0,0 +1,12 @@
|
||||
using SzCore.DataObjects;
|
||||
|
||||
namespace SzCore;
|
||||
|
||||
public interface ISzFileManager
|
||||
{
|
||||
public string DataPath {get;}
|
||||
public string DatasetsPath {get;}
|
||||
|
||||
public bool SaveFile(string path, string fileContent);
|
||||
public string? LoadFile(string path);
|
||||
}
|
||||
10
SzCore/ISzLogger.cs
Normal file
10
SzCore/ISzLogger.cs
Normal file
@@ -0,0 +1,10 @@
|
||||
namespace SzCore;
|
||||
|
||||
public interface ISzLogger
|
||||
{
|
||||
public bool LogToFile { get; set; }
|
||||
public string LogFilePath { get; set; }
|
||||
public void Log(string text);
|
||||
public void LogError(string text);
|
||||
public void LogWarning(string text);
|
||||
}
|
||||
9
SzCore/SzCore.csproj
Normal file
9
SzCore/SzCore.csproj
Normal file
@@ -0,0 +1,9 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
</Project>
|
||||
58
SzCore/SzParser.cs
Normal file
58
SzCore/SzParser.cs
Normal file
@@ -0,0 +1,58 @@
|
||||
using System.Text.Json;
|
||||
using SzCore.DataObjects;
|
||||
|
||||
namespace SzCore;
|
||||
|
||||
public class SzParser(ISzFileManager szFileManager, ISzLogger szLogger)
|
||||
{
|
||||
private readonly JsonSerializerOptions _jsonOptions = new() { WriteIndented = true };
|
||||
|
||||
public string SerializeDatasetToJson(SzDataset dataset)
|
||||
{
|
||||
try
|
||||
{
|
||||
var jsonString = JsonSerializer.Serialize(dataset, _jsonOptions);
|
||||
return jsonString;
|
||||
}
|
||||
catch (JsonException e)
|
||||
{
|
||||
throw new Exception("Parse Error: " + e.Message);
|
||||
}
|
||||
}
|
||||
|
||||
public SzDataset? DeserializeDataset(string jsonString)
|
||||
{
|
||||
try
|
||||
{
|
||||
var result = JsonSerializer.Deserialize<SzDataset>(jsonString, _jsonOptions);
|
||||
return result;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
szLogger.LogError("Could not deserialize JSON to type SzDataset: " + e.Message);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public bool SaveDataset(SzDataset dataset)
|
||||
{
|
||||
var datasetPath = Path.Combine(szFileManager.DatasetsPath, dataset.Id, "dataset.json");
|
||||
try
|
||||
{
|
||||
return szFileManager.SaveFile(datasetPath, SerializeDatasetToJson(dataset));
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
szLogger.LogError("Error saving dataset: " + e.Message);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public SzDataset? LoadDataset(string datasetId)
|
||||
{
|
||||
var datasetPath = Path.Combine(szFileManager.DataPath, "datasets", datasetId, "dataset.json");
|
||||
var json = szFileManager.LoadFile(datasetPath);
|
||||
return json is null ? null : DeserializeDataset(json);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user