SessionZero.SzfToolkit-Dotnet/SessionZero.SzfLib/Helpers/SzfHelper.cs
christopher.bell@i3-corps.com f00bde7e24 Adding per object validation
2025-07-17 10:14:44 -05:00

31 lines
1.0 KiB
C#

using System.Reflection;
using SessionZero.SzfLib.Objects;
namespace SessionZero.SzfLib.Helpers;
public static class SzfHelper
{
public static Type? FindSzfObjectTypeByAttributeType(string szfType)
{
var obj = Assembly
.GetExecutingAssembly()
.GetTypes()
.FirstOrDefault(t => t.GetCustomAttribute(typeof(SzfObjectAttribute)) is not null && t.GetCustomAttribute<SzfObjectAttribute>()?.TypeIdentifier == szfType);
if (obj is null) return null;
return obj.IsAbstract || obj.IsInterface ? null : obj;
}
public static SzfError BasicSzfValidation(ISzfObject obj)
{
SzfError result = new SzfError();
var metadataSection = obj.Sections.FirstOrDefault(s => s.Name == "Metadata");
if (metadataSection is null) result.AddError("No metadata section found");
if (obj.GetMetadataField("Name") == string.Empty) result.AddError("No metadata field name found");
return result;
}
}