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