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; }
}
}