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; } }
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) { } } }