/// <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); }
private void UpdatePrimePart(PrimePart source, PrimePart dest) { dest.Name = source.Name; dest.ImageId = source.ImageId; dest.Image = source.Image; }