public bool TryClearTargetList(ChromeDriver driver, BidPlayerDTO bidPlayerDTO, EaAccount eaAccount)
        {
            _playersHelper = new PlayersHelper(driver);

            try
            {
                driver.OpenTransferTargets(eaAccount);
                var clearExpired = driver.FindElement(By.XPath("//*[contains(text(), 'Clear Expired')]"), 5);
                clearExpired.Click();
                UnwatchOverpricedPlayers(bidPlayerDTO);
            }
            catch
            {
                return(false);
            }

            return(true);
        }
        public async Task <IActionResult> Post(BidPlayerDTO bidPlayer)
        {
            var user      = Request.HttpContext.Items["User"] as User;
            var eaAccount = user.EaAccounts.FirstOrDefault(ea => ea.Username == bidPlayer.Username);

            var playerToBuy = new PlayerToBuy
            {
                EaAccountUsername = bidPlayer.Username,
                Player            = bidPlayer.Player.Id,
                IsBin             = false,
                MaxActiveBids     = bidPlayer.MaxActiveBids,
                MaxPrice          = bidPlayer.MaxPrice,
            };
            await _activePlayersDbService.AddPlayerToBuy(playerToBuy);

            var chromeDriver = ChromeInstances.Instance.Add(bidPlayer.Username);

            new BidService(chromeDriver).BidPlayer(bidPlayer, eaAccount);
            return(Ok());
        }
Exemple #3
0
        public bool PlaceBidActivePlayers(List <IWebElement> players, BidPlayerDTO bidPlayerDTO)
        {
            if (!players.Any())
            {
                return(false);
            }

            try
            {
                foreach (var player in players.Where(p => p.GetAttribute("class").Split(" ").Contains("outbid")))
                {
                    player.Click();
                    var classes = player.GetAttribute("class").Split(" ").ToList();
                    if (classes.Contains("outbid"))
                    {
                        Thread.Sleep(500);
                        var auctionInfo     = _chromeDriver.FindElement(By.ClassName("currentBid"));
                        var currentValueStr = auctionInfo.FindElement(By.ClassName("currency-coins")).Text;
                        int.TryParse(currentValueStr, out var currentValue);

                        if (currentValue >= bidPlayerDTO.MaxPrice)
                        {
                            _chromeDriver.FindElement(By.ClassName("watch"), 5).Click();
                        }
                        else
                        {
                            _chromeDriver.FindElement(By.ClassName("bidButton"), 5).Click();
                        }
                    }
                    Thread.Sleep(1734);
                }
            }
            catch
            {
                players = _playersHelper.InitTargetListOutbidBidPlayers();
                PlaceBidActivePlayers(players, bidPlayerDTO);
            }

            return(true);
        }
Exemple #4
0
        public void BidPlayer(BidPlayerDTO bidPlayerDTO, EaAccount eaAccount)
        {
            _chromeDriver.OpenSearchTransferMarket(eaAccount);

            var nameInput = _chromeDriver.FindElement(By.ClassName("ut-text-input-control"), 3);

            nameInput.SendKeys(bidPlayerDTO.Player.Name);
            Thread.Sleep(500);
            var searchedPlayers = _chromeDriver.FindElementByClassName("playerResultsList").FindElements(By.CssSelector("button"));
            var selectPlayer    = searchedPlayers.FirstOrDefault(p => p.FindElement(By.CssSelector(".btn-subtext")).Text == bidPlayerDTO.Player.Rating.ToString());

            selectPlayer.Click();
            Thread.Sleep(1000);
            var priceElements      = _chromeDriver.FindElementsByClassName("numericInput");
            var maxBidPriceElement = priceElements[1];

            maxBidPriceElement.Clear();
            maxBidPriceElement.SendKeys(bidPlayerDTO.MaxPrice.ToString());
            Thread.Sleep(1000);
            var searchButton = _chromeDriver.FindElementByClassName("call-to-action");

            searchButton.Click();
            Thread.Sleep(4000);

            List <IWebElement> players;

            do
            {
                players = _playersHelper.InitPlayers();
            }while (PlaceBid(players, bidPlayerDTO, eaAccount));

            do
            {
                players = _playersHelper.InitTargetListOutbidBidPlayers();
            }while (PlaceBidActivePlayers(players, bidPlayerDTO));
        }
Exemple #5
0
        private bool PlaceBid(List <IWebElement> players, BidPlayerDTO bidPlayerDTO, EaAccount eaAccount)
        {
            try
            {
                foreach (var player in players)
                {
                    var transferListFullElements = _chromeDriver.FindElementsByClassName("ui-dialog-type-alert");
                    if (transferListFullElements.Count > 0)
                    {
                        var transferListFullWindow = transferListFullElements.FirstOrDefault();
                        var okButton = transferListFullWindow.FindElement(By.ClassName("ut-button-group"));
                        Thread.Sleep(840);
                        okButton.Click();
                        Thread.Sleep(840);

                        if (_clearTargetList.TryClearTargetList(_chromeDriver, bidPlayerDTO, eaAccount))
                        {
                            BidPlayer(bidPlayerDTO, eaAccount);
                        }
                        return(false);
                    }

                    var classes = player.GetAttribute("class").Split(" ").ToList();
                    if (classes.Contains("highest-bid"))
                    {
                        _currentPlayersBidded++;
                        continue;
                    }

                    player.Click();
                    var period          = _chromeDriver.FindElementByClassName("subContent").Text;
                    var isPeriodTooLong = period.Contains("Hour") | period.Contains("Day");
                    if (isPeriodTooLong)
                    {
                        return(false);
                    }

                    int.TryParse(_chromeDriver.FindElementByClassName("auctionInfo").FindElement(By.ClassName("currency-coins")).Text, out int currentPrice);
                    if (currentPrice > bidPlayerDTO.MaxPrice)
                    {
                        continue;
                    }

                    // var inputPrice = _chromeDriver.FindElementByClassName("numericInput");
                    // inputPrice.Clear();
                    // inputPrice.SendKeys(Keys.Backspace);
                    // inputPrice.SendKeys(Keys.Backspace);
                    // inputPrice.SendKeys(Keys.Backspace);
                    // inputPrice.SendKeys(Keys.Backspace);
                    // inputPrice.SendKeys(Keys.Backspace);
                    // inputPrice.SendKeys(Keys.Backspace);
                    // inputPrice.SendKeys(Keys.Backspace);
                    // inputPrice.SendKeys(bidPlayerDTO.MaxPrice.ToString());
                    var bidButton = _chromeDriver.FindElementByClassName("bidButton");
                    if (_currentPlayersBidded >= bidPlayerDTO.MaxActiveBids)
                    {
                        return(false);
                    }

                    _currentPlayersBidded++;
                    bidButton.Click();
                    Thread.Sleep(2000);
                }

                try
                {
                    var nextPage = _chromeDriver.FindElement(By.ClassName("next"));
                    nextPage.Click();
                    Thread.Sleep(3000);
                }
                catch
                {
                    return(false);
                }

                return(true);
            }
            catch
            {
                players = _playersHelper.InitPlayers();
                PlaceBid(players, bidPlayerDTO, eaAccount);
                return(true);
            }
        }
        public void UnwatchOverpricedPlayers(BidPlayerDTO bidPlayerDTO)
        {
            var players = _playersHelper.InitTargetListOutbidBidPlayers();

            _playersHelper.ClearOverPricedPlayers(players, bidPlayerDTO);
        }