30 lines
923 B
C#
30 lines
923 B
C#
|
|
using System.Reflection;
|
|
using static StellaOps.Localization.T;
|
|
|
|
namespace StellaOps.Evidence.Validation;
|
|
|
|
internal static class SchemaLoader
|
|
{
|
|
public static string LoadSchema(string fileName)
|
|
{
|
|
var assembly = Assembly.GetExecutingAssembly();
|
|
var resourceName = assembly.GetManifestResourceNames()
|
|
.FirstOrDefault(name => name.EndsWith(fileName, StringComparison.OrdinalIgnoreCase));
|
|
|
|
if (resourceName is null)
|
|
{
|
|
throw new InvalidOperationException(_t("common.evidence.schema_resource_not_found", fileName));
|
|
}
|
|
|
|
using var stream = assembly.GetManifestResourceStream(resourceName);
|
|
if (stream is null)
|
|
{
|
|
throw new InvalidOperationException(_t("common.evidence.schema_resource_not_available", resourceName));
|
|
}
|
|
|
|
using var reader = new StreamReader(stream);
|
|
return reader.ReadToEnd();
|
|
}
|
|
}
|