public AppLink(Uri address) { if (address is null) { throw new ArgumentNullException(nameof(address)); } Address = address; AppId = SteamLinkHelper.ExtractAppId(address); }
public async Task <SubPage> CreateSubPageAsync(long subId) { var uri = SteamLinkHelper.CreateSubUri(subId); var html = await steamService.GetHtmlAsync(uri); var doc = new HtmlDocument(); doc.LoadHtml(html); return(new SubPage(uri, doc)); }
public async Task <BundlePage> CreateBundlePageAsync(long bundleId) { var uri = SteamLinkHelper.CreateBundleUri(bundleId); var html = await steamService.GetHtmlAsync(uri); var doc = new HtmlDocument(); doc.LoadHtml(html); return(new BundlePage(uri, doc)); }
// TODO: Implement other stuff (which apps it contains, etc.) public SubPage(Uri address, HtmlDocument pageHtml) : base(address, pageHtml, HtmlElements.HeaderLevel2, HtmlElements.Div) { if (!(address.AbsoluteUri ?? string.Empty).StartsWith(PageUrlPrefixes.Sub, StringComparison.OrdinalIgnoreCase)) { throw new ArgumentException( $"The provided address is invalid. Valid addresses must start with '{PageUrlPrefixes.Sub}'.", nameof(address)); } SubId = SteamLinkHelper.ExtractSubId(address); IncludedAppIds = ExtractIncludedAppIds(); // Currently, we assume it's always € Price = ExtractPriceInEuros(); }
// TODO: Implement other stuff (price, title extraction, etc.) public AppPage(Uri address, HtmlDocument pageHtml) : base(address, pageHtml, HtmlElements.Link) { AppId = SteamLinkHelper.ExtractAppId(address); BannerUrl = ExtractBannerUrl(); }