Rename SzLib to SzCore

This commit is contained in:
2026-01-23 23:41:16 -06:00
parent f78f8fdf57
commit 7f232254b1
17 changed files with 29 additions and 29 deletions

View 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;} = [];
}

View 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;} = [];
}

View 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;} = [];
}

View 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;} = "";
}

View File

@@ -0,0 +1,6 @@
namespace SzCore.DataObjects;
public enum SzFieldType
{
Text, Number, Bool, Formula, Ref
}

View 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
View 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
View 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
View 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
View 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);
}
}