Finish DataHandler for DataObjectTemplates and Datasets.

Also added stuff to SzCli main program for testing
This commit is contained in:
2026-01-29 15:19:58 -06:00
parent 2e5263f302
commit 2b42f287a8
2 changed files with 189 additions and 6 deletions

View File

@@ -91,6 +91,8 @@ public class SzDataHandler
DataObjectType = templateResult.Value.DataObjectType,
Uuid = Guid.NewGuid()
};
return SzResult<SzDataset>.Success(newDataset);
}
@@ -196,14 +198,53 @@ public class SzDataHandler
return SzResult<SzTemplateField>.Success(newField);
}
public SzResult<List<SzField>> CreateFields(ISzTemplate template)
public SzResult<SzField> CreateField(string id, SzFieldType fieldType, bool isList = false, string? value = null)
{
return SzResult<List<SzField>>.Failure("Not implemented");
if (string.IsNullOrEmpty(id))
return SzResult<SzField>.Failure("Could not create field, the id parameter was empty");
var newField = new SzField()
{
Id = id,
FieldType = fieldType,
IsList = isList,
Value = value ?? ""
};
return SzResult<SzField>.Success(newField);
}
public SzResult<SzDataObject> CreateDataObject()
public SzResult<Dictionary<string, SzField>> CreateFieldsFromTemplate(ISzTemplate template)
{
return SzResult<SzDataObject>.Failure("Not implemented");
var fields = new Dictionary<string, SzField>();
foreach (var tempField in template.TemplateFields.Values)
{
var newField = CreateField(tempField.Id, tempField.FieldType, tempField.IsList);
if (!newField.IsSuccess || newField.Value is null)
return SzResult<Dictionary<string, SzField>>.Failure($"Could not create field: {newField.Error}");
fields.Add(newField.Value.Id, newField.Value);
}
return SzResult<Dictionary<string, SzField>>.Success(fields);
}
public SzResult<SzDataObject> CreateDataObject(SzDataObjectTemplate template, string name, string? id = null)
{
if (string.IsNullOrEmpty(name))
return SzResult<SzDataObject>.Failure("Could not create object, name was empty");
var dataObject = new SzDataObject()
{
Name = name,
Id = id ?? name.ToLower().Replace(" ", "-").Trim()
};
var createFieldsResult = CreateFieldsFromTemplate(template);
if (!createFieldsResult.IsSuccess || createFieldsResult.Value is null)
return SzResult<SzDataObject>.Failure($"Could not create data object's fields: {createFieldsResult.Error}");
dataObject.Fields = createFieldsResult.Value;
return SzResult<SzDataObject>.Success(dataObject);
}
#endregion