Esempio n. 1
0
        public void AccountCheckoutTest()
        {
            AccountCheckoutSettings settings =
                new AccountCheckoutSettings()
            {
                UserPassword = "******",
                UserLogin    = "******",
                UserCcv2     = "123",
                ProductToBuy = new FootsitesProduct(new ChampsSportsBot()
                                                    , "yle",
                                                    "https://www.champssports.com/product/model:283446/sku:A7097514",
                                                    0, "", "A7097514")
                {
                    Sku   = "A7097514",
                    Model = "283446",
                },
                BuyOptions = new ProductBuyOptions()
                {
                    Size = "S"
                }
            };

            ChampsSportsBot bot = new ChampsSportsBot()
            {
                DelayInSecond = 5
            };

            bot.Start(proxy: "162.217.145.90:2036");
            bot.AccountCheckout(settings, CancellationToken.None);
        }
Esempio n. 2
0
 protected override void FinalCheckout(AccountCheckoutSettings settings, CancellationToken token)
 {
     Browser.ActiveTab.QueueScriptCall($@"document.getElementById(""payMethodPaneStoredCCCVV"").value = ""{settings.UserCcv2}""").WaitOne();
     Debug.WriteLine(Browser.ActiveTab.LastJSException);
     Task.Delay(200, token).Wait(token);
     Browser.ActiveTab.QueueScriptCall(@"document.getElementById(""orderSubmit"").click()").WaitOne();
 }
Esempio n. 3
0
        /// <summary>
        /// This method adds product to cart
        /// </summary>
        /// <param name="driver"> driver from which scripts are called </param>
        /// <param name="settings"> Checkout settings </param>
        /// <param name="token"></param>
        private void AddToCart(WebView driver, AccountCheckoutSettings settings, CancellationToken token)
        {
            //Console.WriteLine(settings);
            var a = settings.ProductToBuy.Url;

            driver.LoadUrlAndWait(settings.ProductToBuy.Url);

            driver.EvalScript(AjaxGetRequest($@"'https://www.champssports.com/pdp/gateway?requestKey=' + requestKey + '&action=add&qty={settings.BuyOptions.Quantity}&sku={settings.ProductToBuy.Sku}&size={settings.BuyOptions.Size}&fulfillmentType=SHIP_TO_HOME&storeNumber=00000&storeCostOfGoods=0.00&_=1537363416933'"));
            //https://www.eastbay.com/pdp/gateway?requestKey=DF4D9B7FFB6EiB7D&action=add&qty=1&sku=31498357&size=M&fulfillmentType=SHIP_TO_HOME&storeNumber=0&_=1537373905543

            Task.Delay(2000, token).Wait(token);
        }
Esempio n. 4
0
        /// <summary>
        /// This method adds product to cart
        /// </summary>
        /// <param name="settings"> Checkout settings </param>
        /// <param name="token"></param>
        protected override void AddToCart(AccountCheckoutSettings settings, CancellationToken token)
        {
            var script = AjaxGetRequest($@"'https://www.eastbay.com/pdp/gateway?requestKey=' +
                            requestKey +
                            '&action=add&qty={settings.BuyOptions.Quantity}&sku={settings.ProductToBuy.Sku}&size={
                    settings.BuyOptions.Size
                }&fulfillmentType=SHIP_TO_HOME&storeNumber=0&_=' +
                            date");

            Browser.ActiveTab.QueueScriptCall(script).WaitOne();
            Task.Delay(200, token).Wait(token);
        }
Esempio n. 5
0
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            int.TryParse(tbx_Quantity.Text, out int quantity);
            if (quantity <= 0)
            {
                MessageBox.Show("Incorrect Quantity typed", "Error", MessageBoxButton.OK, MessageBoxImage.Error, MessageBoxResult.OK, MessageBoxOptions.DefaultDesktopOnly);
                return;
            }

            AccountCheckoutSettings settings;

            try
            {
                settings = new AccountCheckoutSettings()
                {
                    UserLogin    = tbx_UserName.Text,
                    UserPassword = tbx_Password.Text,
                    ProductToBuy = (FootsitesProduct)cbx_Products.SelectedValue,
                    BuyOptions   = new ProductBuyOptions()
                    {
                        Quantity = quantity,
                        Size     = cbx_Size.SelectedValue.ToString()
                    },
                    UserCcv2 = tbx_CCV2.Text
                };
            }
            catch (Exception)
            {
                MessageBox.Show("All required field is not filled correctly", "Error while adding task",
                                MessageBoxButton.OK, MessageBoxImage.Warning);
                return;
            }

            CheckoutTask task = new CheckoutTask()
            {
                CheckoutInfo          = settings,
                MonitoringTokenSource =
                    CancellationTokenSource.CreateLinkedTokenSource(AppData.ApplicationGlobalTokenSource.Token),
            };

            AppData.Session.CurrentTasks.Add(task);
            task.StartMonitoring();

            MessageBox.Show("Checkout Task Added", "Success", MessageBoxButton.OK, MessageBoxImage.Information, MessageBoxResult.OK, MessageBoxOptions.DefaultDesktopOnly);
        }
Esempio n. 6
0
        public virtual void AccountCheckout(AccountCheckoutSettings settings, CancellationToken token)
        {
            Logger.Instance.WriteVerboseLog($"Checkout process ({settings.ProductToBuy.Name}) started", Color.DarkOrange);
            Browser.NewTab("MainTab");

            Logger.Instance.WriteVerboseLog($"Signing in (username={settings.UserLogin}...");
            if (!Login(settings.UserLogin, settings.UserPassword, token))
            {
                Logger.Instance.WriteErrorLog("Wrong password");
            }
            Logger.Instance.WriteVerboseLog($"Login successful!", Color.DarkOliveGreen);

            Logger.Instance.WriteVerboseLog($"Clearing cart...", Color.Black);
            RemoveAllItems(token);
            Logger.Instance.WriteVerboseLog($"Cart cleared!", Color.DarkOliveGreen);
            Logger.Instance.WriteVerboseLog($"Preparing for checkout...", Color.Black);
            FootsitesProduct arbitraryProduct = GetArbitraryItem(token);

            Browser.ActiveTab.LoadUrlAndWait(arbitraryProduct.Url);
            Task.Delay(4000, token).Wait(token);
            AddArbitraryItem(arbitraryProduct, token);
            Task.Delay(2000, token).Wait(token);
            GoToCheckoutPage(token);
            Browser.NewTab("Cart");
            RemoveArbitraryItem(arbitraryProduct, token);
            Browser.ActiveTab.LoadUrlAndWait(settings.ProductToBuy.Url);
            Task.Delay(4000, token).Wait(token);
            Logger.Instance.WriteVerboseLog("Preparation Done!", Color.DarkOliveGreen);
            var secondsLeft = (settings.ProductToBuy.ReleaseTime - DateTime.UtcNow)?.Seconds;

            Logger.Instance.WriteVerboseLog($"Waiting product to be released (about {secondsLeft} seconds left...");

            WaitBeforeRelease(settings.ProductToBuy.Model, token);
            Logger.Instance.WriteVerboseLog($"Product release detected!", Color.DarkOliveGreen);
            Logger.Instance.WriteVerboseLog("Adding product to cart..", Color.Black);
            AddToCart(settings, token);
            Logger.Instance.WriteVerboseLog("Product successfully added to cart!", Color.DarkOliveGreen);
            Logger.Instance.WriteVerboseLog("Checkout product...", Color.Black);
            Browser.SwitchToTab(0).Reload().WaitOne();
            FinalCheckout(settings, token);
            Logger.Instance.WriteVerboseLog("CHECKOUT SUCCESS!!!", Color.DarkGreen);
            Logger.Instance.WriteVerboseLog("Signing out from account...");
            LogOut(token);
            Logger.Instance.WriteVerboseLog("Sign out success!", Color.Green);
        }
Esempio n. 7
0
        public override void AccountCheckout(AccountCheckoutSettings settings, CancellationToken token)
        {
            Browser.NewTab("MainTab");

            if (!Login("*****@*****.**", "giorgi121", token))
            {
                Logger.Instance.WriteErrorLog("Wrong password");
                return;
            }

            FootsitesProduct arbitraryProduct = GetArbitraryItem(token);
            var cartTab = Browser.NewTab("Cart");

            AddArbitraryItemToCart(arbitraryProduct, token);
            Task.Delay(3 * 1000, token).Wait(token);
            AddToCart(Browser.ActiveTab, settings, token);
            Task.Delay(3 * 1000).Wait(token);

            RemoveArbitraryItem(arbitraryProduct, token);
            Task.Delay(DelayInSecond * 1000, token).Wait(token);
            Browser.SwitchToTab(0).Reload().WaitOne();
            Task.Delay(10 * 1000, token).Wait(token);
        }
Esempio n. 8
0
 protected override void FinalCheckout(AccountCheckoutSettings settings, CancellationToken token)
 {
     throw new NotImplementedException();
 }
Esempio n. 9
0
 public override void AccountCheckout(AccountCheckoutSettings settings, CancellationToken token)
 {
 }
Esempio n. 10
0
 protected abstract void FinalCheckout(AccountCheckoutSettings settings, CancellationToken token);
Esempio n. 11
0
 protected abstract void AddToCart(AccountCheckoutSettings settings, CancellationToken token);