public async Task AddGame(GameAddMessage game)
        {
            bool test = false;

            try
            {
                test = gamesDb.Games.AsEnumerable().Any(g => g.Team1 == game.Team1 &&
                                                        g.Team2 == game.Team2 &&
                                                        (DateTime.Now - g.CreatedOn).TotalMinutes < 120);
            }
            catch (Exception e)
            {
                throw e;
            }


            if (!test)
            {
                await gamesDb.Games.AddAsync(new Game()
                {
                    Team1     = game.Team1,
                    Team2     = game.Team2,
                    Score     = game.Score,
                    CreatedOn = DateTime.Now,
                });

                gamesDb.SaveChanges();
            }
            else
            {
                int x = 5;
            }
        }
示例#2
0
        public async Task Craw()
        {
            HtmlWeb      web      = new HtmlWeb();
            HtmlDocument document = web.Load("https://www.livescores.com/");
            var          games    = document.DocumentNode.SelectNodes("//div")
                                    .Where(t => t.HasClass("ply")).ToList();

            foreach (var game in games)
            {
                try
                {
                    var team1 = game.InnerText;
                    var team2 = game.ParentNode.Descendants()?
                                .Where(t => t.HasClass("ply"))?.ToList()[1].InnerText;

                    var score = game.ParentNode.Descendants()
                                .First(t => t.HasClass("sco"))?.SelectSingleNode("a")?.InnerText;

                    if (score != null && team2 != null)
                    {
                        var gameResult = new GameAddMessage
                        {
                            Score = score,
                            Team1 = team1,
                            Team2 = team2
                        };
                        await bus.Publish(gameResult);
                    }
                }
                catch (Exception e)
                { }
            }
        }