Now able to get a field from a path

This commit is contained in:
2026-02-03 23:31:54 -06:00
parent 30236924a0
commit 2a016dad89
5 changed files with 86 additions and 3 deletions

View File

@@ -1,5 +1,3 @@
using System.Net.NetworkInformation;
namespace SzCore;
public static class SZ
@@ -130,4 +128,4 @@ public static class SZ
{
if (!IsInitalized) throw new Exception("SZ.Init has not been called.");
}
}
}

View File

@@ -88,6 +88,33 @@ public class SzDataHandler
return SzResult<SzDataset>.Success(newDataset);
}
public async Task<SzResult<string>> GetFieldValueFromPath(string path)
{
var parts = path.Split('.');
if (parts.Length < 3) return SzResult<string>.Failure("Not enough arguments in path");
var datasetId = parts[0];
var dataObjectId = parts[1];
var fieldPath = string.Join(".", parts.Skip(2));
var datasetResult = await LoadDatasetAsync(datasetId);
if (!datasetResult.IsSuccess)
return SzResult<string>.Failure($"Could not get field value, dataset with id '{datasetId}' could not be loaded: {datasetResult.Error}");
var dataset = datasetResult.Value;
if (dataset is null) return SzResult<string>.Failure("Dataset was null somehow");
if (!dataset.DataObjects.TryGetValue(dataObjectId, out var dataObject))
return SzResult<string>.Failure($"Data object {dataObjectId} does not exist in dataset {datasetId}");
if (!dataObject.Fields.TryGetValue(fieldPath, out var field))
return SzResult<string>.Failure($"Field {fieldPath} does not exist in Data Object {dataObjectId}");
return SzResult<string>.Success(field.Value);
}
#endregion
#region Templates