More datahandler stuff, removed SzOperationResult.cs and made a new SzResult.cs and changed Evaluator and DataHander to utilize it

This commit is contained in:
2026-01-29 11:30:35 -06:00
parent 5265ceb0da
commit 2e5263f302
9 changed files with 136 additions and 354 deletions

View File

@@ -7,29 +7,25 @@ namespace SzCore;
public class SzEvaluator
{
public SzOperationResult EvaluateDataset(SzDataset dataset)
public SzResult<bool> EvaluateDataset(SzDataset dataset)
{
if (dataset is null) return new SzOperationResult(false, "Dataset cannot be null");
var errors = new StringBuilder();
var template = SZ.SzDataHandler.LoadTemplate<SzDataObjectTemplate>(dataset.DataObjectTemplateId);
if (template is null) return new SzOperationResult(false, $"Template with id {dataset.DataObjectTemplateId} for Dataset ID {dataset.Id} could not be loaded");
var template = SZ.DataHandler.LoadTemplate<SzDataObjectTemplate>(dataset.DataObjectTemplateId);
if (!template.IsSuccess || template.Value is null) return SzResult<bool>.Failure($"Template with id {dataset.DataObjectTemplateId} for Dataset ID {dataset.Id} could not be loaded");
foreach (var dataObject in dataset.DataObjects.Values)
{
var evalResult = EvaluateDataObject(dataObject, template);
if (!evalResult.Pass) errors.Append(evalResult.Errors);
var evalResult = EvaluateDataObject(dataObject, template.Value);
if (!evalResult.IsSuccess) errors.Append(evalResult.Error);
}
var errString = errors.ToString();
return new SzOperationResult(string.IsNullOrEmpty(errString), errString);
return string.IsNullOrEmpty(errString) ? SzResult<bool>.Success(true) : SzResult<bool>.Failure(errString);
}
public SzOperationResult EvaluateDataObject(SzDataObject dataObject, SzDataObjectTemplate template)
public SzResult<bool> EvaluateDataObject(SzDataObject dataObject, SzDataObjectTemplate template)
{
if (dataObject is null || template is null) return new SzOperationResult(false, "dataObject or template is null");
var errors = new StringBuilder();
foreach (var (key, templateField) in template.TemplateFields)
@@ -41,10 +37,10 @@ public class SzEvaluator
}
var templateMatchResult = DoesFieldMatchTemplateField(matchingField, templateField);
if (!templateMatchResult.Pass) errors.Append(templateMatchResult.Errors);
if (!templateMatchResult.IsSuccess) errors.Append(templateMatchResult.Error);
var evalResult = EvaluateFieldValue(matchingField);
if (!evalResult.Pass) errors.Append(evalResult.Errors);
if (!evalResult.IsSuccess) errors.Append(evalResult.Error);
}
foreach (var objectFieldKey in dataObject.Fields.Keys)
@@ -56,10 +52,10 @@ public class SzEvaluator
}
var errString = errors.ToString().Trim();
return new SzOperationResult(string.IsNullOrEmpty(errString), string.IsNullOrEmpty(errString) ? "" : errString);
return string.IsNullOrEmpty(errString) ? SzResult<bool>.Success(true) : SzResult<bool>.Failure(errString);
}
public SzOperationResult DoesFieldMatchTemplateField(SzField field, SzTemplateField templateField)
public SzResult<bool> DoesFieldMatchTemplateField(SzField field, SzTemplateField templateField)
{
var errors = new StringBuilder();
@@ -68,13 +64,13 @@ public class SzEvaluator
if (field.IsList != templateField.IsList) errors.AppendLine($"Field '{field.Id}' IsList mismatch: Expected {templateField.IsList}");
var errString = errors.ToString().Trim();
return new SzOperationResult(string.IsNullOrEmpty(errString), errString);
return string.IsNullOrEmpty(errString) ? SzResult<bool>.Success(true) : SzResult<bool>.Failure(errString);
}
public SzOperationResult EvaluateFieldValue(SzField field)
public SzResult<bool> EvaluateFieldValue(SzField field)
{
if (string.IsNullOrWhiteSpace(field.Value))
return new SzOperationResult(true, "");
return SzResult<bool>.Success(true);
var errors = new StringBuilder();
@@ -111,6 +107,6 @@ public class SzEvaluator
}
var errString = errors.ToString().Trim();
return new SzOperationResult(string.IsNullOrEmpty(errString), errString);
return string.IsNullOrEmpty(errString) ? SzResult<bool>.Success(true) : SzResult<bool>.Failure(errString);
}
}
}