/// <summary> /// Find all dig games with cards /// </summary> /// <param name="textItemValue"> string to parse </param> private void FindCardGames(string textItemValue) { var updatedResult = string.Join(" ", textItemValue.Replace("Buy key", string.Empty).Split().Where(x => x != "")); updatedResult = updatedResult.Remove(0, updatedResult.IndexOf(' ') + 1); _page.Dispatcher.Invoke(() => DigGamesWithCrads.Add(updatedResult)); var price = updatedResult.Remove(0, updatedResult.IndexOf("$") + 1).Replace(".", ","); PricesOnlyCards.Add(Convert.ToDouble(price)); }
/// <summary> /// Clear all page /// </summary> private void Clear() { _page.Dispatcher.Invoke(() => { DigGames.Clear(); DigGamesWithCrads.Clear(); Prices.Clear(); PricesOnlyCards.Clear(); TotalSumm = 0; TotalSummWithCards = 0; AllGames = 0; AllGamesWithCards = 0; }); }
/// <summary> /// Get all information about user /// </summary> /// <param name="enteredUserName"> Entered username by user </param> public void GetUserInfo(string enteredUserName) { if (enteredUserName == null) { return; } enteredUserName = enteredUserName.Remove(0, enteredUserName.LastIndexOf("/") + 1); var isContinue = _parseService.GetUserAccountInfo(enteredUserName); _page.Dispatcher.Invoke(() => { if (isContinue) { // write UserInfo data _userData.UserName = _parseService.UserNameParse; _userData.UserGameCount = _parseService.GameCountParse; _userData.UserCountryCode = _parseService.UserCountryCodeParse; _userData.UserAvatar = _parseService.UserAvatarParse; _userData.UserProfileStatus = _parseService.UserProfileStatusParse; _userData.UserProfileState = _parseService.UserProfileStateParse; // initialize ViewModel properties UserName = _userData.UserName; UserGameCount = _userData.UserGameCount; UserCountryCode = _userData.UserCountryCode; UserAvatar = _userData.UserAvatar; UserProfileStatus = _userData.UserProfileStatus; UserProfileState = _userData.UserProfileState; AmountGamesAll = 0; AmountGamesWithCards = 0; GamesAllSumm = 0; GamesWithCardsSumm = 0; PricesAll.Clear(); PricesOnlyCards.Clear(); UserGames.Clear(); CanCloseAvailableAll = true; } }); }
/// <summary> /// Parse needed info from DIG /// </summary> /// <param name="token"> token to check if task was cancelled </param> public void Parse(CancellationToken token) { _page.Dispatcher.Invoke(() => { DigGames.Clear(); DigGamesWithCrads.Clear(); Prices.Clear(); PricesOnlyCards.Clear(); TotalSumm = 0; TotalSummWithCards = 0; AllGames = 0; AllGamesWithCards = 0; }); for (int i = _digSettings.StartPoint; i <= _digSettings.EndPoint; i++) { var document = ParseSettingsAsync(i).Result; if (document is null) { return; } if (token.IsCancellationRequested) { return; //token.ThrowIfCancellationRequested(); } var menuItems = document.QuerySelectorAll("tr").Where(item => item.ClassName != null && item.ClassName.Contains("DIG3_14_Gray")); foreach (var item in menuItems) { FindAllGames(item.TextContent); if (item.TextContent.Contains("Yes")) { FindCardGames(item.TextContent); } } } TotalSumm = Math.Round(Prices.Sum(), 3); AllGames = DigGames.Count; TotalSummWithCards = Math.Round(PricesOnlyCards.Sum(), 3); AllGamesWithCards = DigGamesWithCrads.Count; /// write into helper class amount and values ViewModelHelper.AllGamesHelper = AllGames; ViewModelHelper.AllGamesCardsHelper = AllGamesWithCards; ViewModelHelper.AllGamesPriceHelper = TotalSumm; ViewModelHelper.AllGamesPriceCardsHelper = TotalSummWithCards; var nameDigGames = new ObservableCollection <string>(); var nameDigGamesWithCards = new ObservableCollection <string>(); foreach (var item in DigGames) { nameDigGames.Add(item.Remove(item.LastIndexOf("STEAM")).TrimEnd()); } foreach (var item in DigGamesWithCrads) { var temp = item.Remove(item.LastIndexOf("STEAM")).TrimEnd(); if (temp.Contains("Yes")) { temp = item.Remove(item.LastIndexOf("Yes")).TrimEnd(); } nameDigGamesWithCards.Add(temp); } ViewModelHelper.DigGames.Clear(); ViewModelHelper.DigGamesWithCards.Clear(); ViewModelHelper.PricesAll.Clear(); ViewModelHelper.PricesWithCards.Clear(); foreach (var item in nameDigGames) { ViewModelHelper.DigGames.Add(item); } foreach (var item in nameDigGamesWithCards) { ViewModelHelper.DigGamesWithCards.Add(item); } foreach (var item in Prices) { ViewModelHelper.PricesAll.Add(item); } foreach (var item in PricesOnlyCards) { ViewModelHelper.PricesWithCards.Add(item); } CanCloseGetAll = true; CanCloseClear = true; }
/// <summary> /// Get information abount all available games with cards /// </summary> public void GetAvailableGamesCardsInfo() { var isContinueGames = _parseService.GetUserGamesInfo(); _page.Dispatcher.Invoke(() => { if (UserName is null) { MessageBox.Show("No entered user", "No user error"); return; } if (ViewModelHelper.DigGames.Count != 0) { var tempList = ViewModelHelper.DigGamesWithCards .Where(item => !UserGames.Contains(item)) .ToList(); TempList = tempList; var twmpList = new int[ViewModelHelper.DigGamesWithCards.Count]; for (int i = 0; i < ViewModelHelper.DigGamesWithCards.Count; i++) { if (!UserGames.Any(x => x == ViewModelHelper.DigGamesWithCards[i])) { twmpList[i] = i; } else { twmpList[i] = 0; } } PricesOnlyCards.Clear(); PricesOnlyCards.Add(0.1); for (int i = 0; i < twmpList.Length; i++) { if (twmpList[i] != 0) { PricesOnlyCards.Add(ViewModelHelper.PricesWithCards[i]); } } GamesWithCardsSumm = Math.Round(PricesOnlyCards.Sum(), 3); AmountGamesWithCards = TempList.Distinct().Count(); /// write user cards info into helper class ViewModelHelper.AllGamesCardsUserHelper = AmountGamesWithCards; ViewModelHelper.AllGamesPriceCardsUserHelper = GamesWithCardsSumm; for (var i = 0; i < TempList.Count; i++) { if (!UserCardGamesDict.ContainsKey(TempList[i])) { UserCardGamesDict.Add(TempList[i], PricesOnlyCards[i]); } } TempList.Clear(); ListViewSourse.Clear(); foreach (var item in UserCardGamesDict) { ListViewSourse.Add($"Game: {item.Key} | Price: ${item.Value}"); } CanCloseSaveCards = true; } else { MessageBox.Show("No games from DIG", "No dig games error"); return; } }); }