Пример #1
0
 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();
         }
     }
 }
Пример #2
0
        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);
        }