public MoverCardDataModel GetSrapedMoversShakersData(MTGFormatsEnum format) { try { Console.WriteLine(AddDateTimeConsoleWrite.AddDateTime($"[Scraping {format.ToString()}]: Waiting 5 seconds before we begin...")); Thread.Sleep(5000); var scrapedData = new MoverCardDataModel(); Driver.Navigate().GoToUrl($"https://www.mtggoldfish.com/movers/paper/{format}"); var pageUpdatedTime = Driver.FindElement(MoversShakersMappings.PageLastUpdatedXpath).GetAttribute("title").Replace("UTC", ""); DateTime.TryParse(pageUpdatedTime, out DateTime parsedPageUpdatedTime); scrapedData.PageLastUpdated = parsedPageUpdatedTime; scrapedData.Format = format.ToString(); scrapedData.DailyIncreaseList = GetMoversAndShakersData(format, true, true, true); scrapedData.DailyDecreaseList = GetMoversAndShakersData(format, false, true, true); scrapedData.WeeklyIncreaseList = GetMoversAndShakersData(format, true, true, false); scrapedData.WeeklyDecreaseList = GetMoversAndShakersData(format, false, true, false); Console.WriteLine(AddDateTimeConsoleWrite.AddDateTime($"### Successfully scraped {format}. Quitting Driver.. ###")); Driver.Quit(); return(scrapedData); } catch (Exception e) { Driver.Quit(); Console.WriteLine(e); throw; } }
/// <summary> /// Takes in two objects and will run them through an IEqualityComparer to determine if they're equal. If they're not, we create a new JSON document. /// </summary> /// <param name="format"></param> private void DetermineNewData(MoverCardDataModel newScrapedData, MoverCardDataModel oldScrapedData, MTGFormatsEnum format) { newScrapedData.Format = format.ToString(); if (newScrapedData.DailyIncreaseList.Count != 0 && oldScrapedData.DailyIncreaseList.Count != 0) { for (var i = 0; i < newScrapedData.DailyIncreaseList.Count; i++) { if (!new MoverCardDataEqualityComparer().Equals(newScrapedData.DailyIncreaseList[i], oldScrapedData.DailyIncreaseList[i])) { Console.WriteLine($"New: {newScrapedData.Format} and Old: {oldScrapedData.Format} Differ. Writing to disk..."); MoversShakersJsonController.WriteMoverShakersJsonByFileName(newScrapedData, $"{format.ToString()}.json"); _completedFormats.Add($"{newScrapedData.Format}"); break; } } } else if (newScrapedData.DailyIncreaseList.Count > 0 && oldScrapedData.DailyIncreaseList.Count == 0) { for (int i = 0; i < newScrapedData.DailyIncreaseList.Count; i++) { Console.WriteLine(AddDateTimeConsoleWrite.AddDateTime($"{nameof(oldScrapedData)}.{nameof(oldScrapedData.DailyIncreaseList)} was empty. Created {format.ToString()}.json")); MoversShakersJsonController.WriteMoverShakersJsonByFileName(newScrapedData, $"{format.ToString()}.json"); _completedFormats.Add($"{newScrapedData.Format}"); break; } } }