public static async Task <decimal> RedeemAmazonAsync(this IWebView view, string claimcode, CancellationToken ct, int delayMS) { string amazonCashInUrl = "https://www.amazon.com/gc/redeem/"; if (view.Source.ToString().ToLower().Contains(amazonCashInUrl) == false) { await view.WaitPageLoadComplete(() => { view.Source = amazonCashInUrl.ToUri(); }, ct : ct); } else { await view.WaitPageLoadComplete(() => { view.Reload(false); }, ct : ct); } view.ExecuteJavascript(string.Format("document.querySelector('#gc-redemption-input').value='{0}'", claimcode)); await view.WaitPageLoadComplete(() => { view.ExecuteJavascript("document.querySelector(\"#gc-redemption-apply input\").click()"); }, ct : ct); await Task.Delay(delayMS); return(await view.GetAmazonBalanceAsync()); }
public static async Task <decimal> AuthenticateToAmazonAsync(this IWebView view, string username, string password, CancellationToken ct) { string amazonLoginUrl = @"https://www.amazon.com/gc/redeem/"; if (view.Source == null) { await view.WaitPageLoadComplete(() => { view.Source = amazonLoginUrl.ToUri(); }, ct : ct); } if (view.Source.ToString().ToLower() != amazonLoginUrl) { await view.WaitPageLoadComplete(() => { view.Source = amazonLoginUrl.ToUri(); }, ct : ct); } else { view.Reload(true); } if (view.Source.ToString().ToLower().Contains("signin")) { view.ExecuteJavascript(string.Format("document.querySelector(\"#ap_email\").value=\"{0}\"", username)); view.ExecuteJavascript(string.Format("document.querySelector(\"#ap_password\").value=\"{0}\"", password)); await view.WaitPageLoadComplete(() => { view.ExecuteJavascript("document.querySelector(\"#signInSubmit\").click()"); }, 10); while (true) { await Task.Delay(250, ct); ct.ThrowIfCancellationRequested(); if (view.Source.ToString().ToLower().Contains("/redeem/")) { break; } } } return(await view.GetAmazonBalanceAsync()); }