Exemplo n.º 1
0
        /// <summary>
        /// Gets the PrimePart entities from the ducanator page
        /// </summary>
        /// <param name="cancellationToken">The cancellation token</param>
        /// <returns>A set of prime parts</returns>
        public IEnumerable <PrimePart> GetPrimePartsFromPage(CancellationTokenSource cancellationToken)
        {
            ReadOnlyCollection <IWebElement> elements;
            List <PrimePart> primeParts     = new List <PrimePart>();
            bool             shouldRunAgain = true;
            bool             hasAnyElementBeenAdded;

            while (shouldRunAgain)
            {
                if (cancellationToken.IsCancellationRequested)
                {
                    return(null);
                }
                else
                {
                    Console.WriteLine("Getting prime parts prices from warframe.market listings. Please wait...");
                }

                elements = GetElements(".row.ducats");
                hasAnyElementBeenAdded = false;

                foreach (IWebElement element in elements)
                {
                    PrimePart newPrimePart = PrimePart.Parse(element);

                    if (!primeParts.Any(primePart => primePart.Name == newPrimePart.Name))
                    {
                        hasAnyElementBeenAdded = true;
                        primeParts.Add(newPrimePart);
                    }
                }

                if (!hasAnyElementBeenAdded)
                {
                    shouldRunAgain = false;
                }
                else
                {
                    IJavaScriptExecutor scriptExecutor = (IJavaScriptExecutor)_driver;
                    scriptExecutor.ExecuteScript("window.scrollBy(0,400)");
                    Thread.Sleep(200);
                }
            }

            return(primeParts);
        }
Exemplo n.º 2
0
 private void UpdatePrimePart(PrimePart source, PrimePart dest)
 {
     dest.Name    = source.Name;
     dest.ImageId = source.ImageId;
     dest.Image   = source.Image;
 }