Exemple #1
0
        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));
        }
Exemple #4
0
        // 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();
        }
Exemple #5
0
 // 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();
 }