using HtmlAgilityPack; namespace Beam.Dynamic { public record class DataBindings { public IDataProvider? Title { get; set; } public IDataProvider? Authors { get; set; } public IDataProvider? Description { get; set; } public IDataProvider? Content { get; set; } public IDataProvider? Language { get; set; } public IDataProvider? Tags { get; set; } public virtual ResolvedBindings Resolve(HtmlDocument doc) { return new ResolvedBindings() { Title = Title?.Get(doc), Authors = Authors?.Get(doc) ?? [], Language = Language?.Get(doc), Content = Content?.Get(doc), Description = Description?.Get(doc), Tags = Tags?.Get(doc) ?? [] }; } } public record class ResolvedBindings { public string? Title { get; set; } public string[]? Authors { get; set; } public string? Description { get; set; } public string? Content { get; set; } public string[]? Language { get; set; } public string[]? Tags { get; set; } } }