private void UpsertSingleRecordFromPsPrice(GamePrice game) { using (var objconnection = new SqlConnection(_connection)) { objconnection.Open(); using (var objcmd = new SqlCommand("dbo.p_UpsertGamePrice", objconnection)) { objcmd.CommandType = CommandType.StoredProcedure; objcmd.Parameters.Add("@offerFinishesAt", SqlDbType.DateTime2, 8); objcmd.Parameters["@offerFinishesAt"].Value = game.OfferFinishesAt; objcmd.Parameters.Add("@psPriceRating", SqlDbType.Decimal, 5); objcmd.Parameters["@psPriceRating"].Value = game.PsPriceRating; objcmd.Parameters.Add("@actualPrice", SqlDbType.Decimal, 5); objcmd.Parameters["@actualPrice"].Value = game.ActualPrice; objcmd.Parameters.Add("@originalPrice", SqlDbType.Decimal, 5); objcmd.Parameters["@originalPrice"].Value = game.OriginalPrice; objcmd.Parameters.Add("@subscriptionPrice", SqlDbType.Decimal, 5); objcmd.Parameters["@subscriptionPrice"].Value = game.SubscriptionPrice; objcmd.Parameters.Add("@psPriceRatingQty", SqlDbType.Int, 4); objcmd.Parameters["@psPriceRatingQty"].Value = game.PsPriceRatingQty; objcmd.Parameters.Add("@name", SqlDbType.NVarChar, 1000); objcmd.Parameters["@name"].Value = game.Name; objcmd.Parameters.Add("@platform", SqlDbType.VarChar, 50); objcmd.Parameters["@platform"].Value = game.Platform; objcmd.ExecuteReader(); } } }
public List <GamePrice> GetGamesFromPage(string page) { var games = new List <GamePrice>(); var doc = new HtmlAgilityPack.HtmlDocument(); doc.LoadHtml(page); var nodes = doc.DocumentNode.SelectNodes("//*[@id=\"pjax-container\"]/div[2]/div/div[*]/div"); foreach (var game in nodes) { if (game.ChildNodes.Count == 7) { continue; } var i = 0; var newGame = new GamePrice() { Platform = "PS4" }; foreach (var gameChildNode in game.ChildNodes) { var temp = gameChildNode.InnerText; if (i == 3) { newGame.Name = temp; } if (i == 5) { var rate = GetRatingFromString(temp); newGame.PsPriceRating = rate[0]; newGame.PsPriceRatingQty = (int)rate[1]; if ((int)rate[1] == 0) { i += 2; } } if (i == 11) { if (!temp.Contains(newGame.Platform)) { newGame.OfferFinishesAt = GetDateTimeFromString(temp); } else { i += 2; } } if (i == 15) { var prices = GetPricesFromString(temp); newGame.ActualPrice = prices[1]; newGame.OriginalPrice = prices[0]; if (prices.Length == 3) { newGame.SubscriptionPrice = prices[2]; } } i++; } games.Add(newGame); } return(games); }