ArchiSteamFarm.CardsFarmer.IsAnythingToFarm C# (CSharp) Метод

IsAnythingToFarm() приватный Метод

private IsAnythingToFarm ( ) : Task
Результат Task
		private async Task<bool> IsAnythingToFarm() {
			Bot.ArchiLogger.LogGenericInfo("Checking badges...");

			// Find the number of badge pages
			Bot.ArchiLogger.LogGenericInfo("Checking first page...");
			HtmlDocument htmlDocument = await Bot.ArchiWebHandler.GetBadgePage(1).ConfigureAwait(false);
			if (htmlDocument == null) {
				Bot.ArchiLogger.LogGenericWarning("Could not get badges information, will try again later!");
				return false;
			}

			byte maxPages = 1;

			HtmlNode htmlNode = htmlDocument.DocumentNode.SelectSingleNode("(//a[@class='pagelink'])[last()]");
			if (htmlNode != null) {
				string lastPage = htmlNode.InnerText;
				if (string.IsNullOrEmpty(lastPage)) {
					Bot.ArchiLogger.LogNullError(nameof(lastPage));
					return false;
				}

				if (!byte.TryParse(lastPage, out maxPages) || (maxPages == 0)) {
					Bot.ArchiLogger.LogNullError(nameof(maxPages));
					return false;
				}
			}

			GamesToFarm.ClearAndTrim();

			List<Task> tasks = new List<Task>(maxPages - 1) { CheckPage(htmlDocument) };

			if (maxPages > 1) {
				Bot.ArchiLogger.LogGenericInfo("Checking other pages...");

				for (byte page = 2; page <= maxPages; page++) {
					byte currentPage = page; // We need a copy of variable being passed when in for loops, as loop will proceed before task is launched
					tasks.Add(CheckPage(currentPage));
				}
			}

			await Task.WhenAll(tasks).ConfigureAwait(false);
			SortGamesToFarm();
			return GamesToFarm.Count > 0;
		}