using HtmlAgilityPack; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Beam.Dynamic { public class AnchorDataProvider : IDataProvider, IDataProvider { public IBinding? Content { get; set; } public string Get(HtmlDocument document) { if (Content is null) return ""; return Content.Select(document)?.GetAttributeValue("href", "") ?? ""; } SourceLink IDataProvider.Get(HtmlDocument document) { var content = Get(document); if (content is null) return SourceLink.InvalidLink; if (!Uri.TryCreate(content, UriKind.RelativeOrAbsolute, out _)) return SourceLink.InvalidLink; return new SourceLink(content); } } }