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:
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user