← All source files

V18 / 8d896b8a86e5

ProviderClient.WebsitePreviewDraft.cs

Lilith/Core/Projects/ProviderClient.WebsitePreviewDraft.cs

Unchanged from the preceding version
CS
using System.Security.Cryptography;
using System.Text;
using System.Text.Json;
using Lilith.Core.Projects;

namespace Lilith.Core.Providers;

public abstract partial class ProviderClient
{
    private partial WebsitePreviewSource ResolvePreviewDraft(string name,string id)
    {
        var draft = new ProjectDraftStore(Workspace ?? throw new InvalidOperationException("Workspace unavailable.")).Load(id);
        if (draft.Kind != "website" || draft.Name != name) throw new InvalidOperationException("Select the exact website draft by name and ID.");
        return new(name,draft.Files,Convert.ToHexString(SHA256.HashData(Encoding.UTF8.GetBytes(JsonSerializer.Serialize(draft.Files)))));
    }
}