Now able to get a field from a path
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user