Restructure solution layout by module
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
using System.Collections.Immutable;
|
||||
using System.Text.Json;
|
||||
|
||||
namespace StellaOps.Concelier.RawModels;
|
||||
|
||||
public static class RawDocumentFactory
|
||||
{
|
||||
public static AdvisoryRawDocument CreateAdvisory(
|
||||
string tenant,
|
||||
RawSourceMetadata source,
|
||||
RawUpstreamMetadata upstream,
|
||||
RawContent content,
|
||||
RawIdentifiers identifiers,
|
||||
RawLinkset linkset,
|
||||
string? supersedes = null)
|
||||
{
|
||||
var clonedContent = content with { Raw = Clone(content.Raw) };
|
||||
return new AdvisoryRawDocument(tenant, source, upstream, clonedContent, identifiers, linkset, supersedes);
|
||||
}
|
||||
|
||||
public static VexRawDocument CreateVex(
|
||||
string tenant,
|
||||
RawSourceMetadata source,
|
||||
RawUpstreamMetadata upstream,
|
||||
RawContent content,
|
||||
RawLinkset linkset,
|
||||
ImmutableArray<VexStatementSummary> statements,
|
||||
string? supersedes = null)
|
||||
{
|
||||
var clonedContent = content with { Raw = Clone(content.Raw) };
|
||||
return new VexRawDocument(tenant, source, upstream, clonedContent, linkset, statements, supersedes);
|
||||
}
|
||||
|
||||
private static JsonElement Clone(JsonElement element)
|
||||
{
|
||||
using var document = JsonDocument.Parse(element.GetRawText());
|
||||
return document.RootElement.Clone();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user