private void ProcessResult(SquashContext context, Tournament tournament, HtmlNodeCollection results, int position) { var player = GetPlayer(context, players.ElementAt(position - 1).Name); for (int i = 2 + position; i < players.Count + 2; i++) { var player2 = GetPlayer(context, players.ElementAt(i - 2).Name); var result = results.ElementAt(i).InnerHtml.Trim().Split(" "); AddResults(context, player, player2, result, tournament); } double rating; if (double.TryParse(results.Last().InnerText.Trim().Replace(" ", ""), out rating)) { player.TournamentResults.Add(new PlayerTournamentResult { Position = position, Points = rating, Tournament = tournament }); } else { player.TournamentResults.Add(new PlayerTournamentResult { Position = position, Points = null, Tournament = tournament }); } context.SaveChanges(); }
private void AddPoints(SquashContext context, DBPlayer player, DateTime date, string points) { var dbPoints = new Points { Date = date, Number = points }; player.Points.Add(dbPoints); }
public AppController(IMailService mailService, IConfigurationRoot config, SquashContext context, ISquashRepository repo, ILogger <AppController> logger) { _mailService = mailService; _config = config; _repo = repo; _logger = logger; }
private void GetResults(SquashContext context) { var rows = document.DocumentNode.SelectNodes("//tbody//tr"); var position = 1; foreach (var row in rows) { var result = row.SelectNodes("descendant::td"); ProcessResult(context, tournament, result, position++); } }
private DBPlayer CreatePlayer(SquashContext context, string player, DBPlayer dbPlayer) { if (dbPlayer != null) { return(dbPlayer); } dbPlayer = new DBPlayer(player); context.Players.Add(dbPlayer); context.SaveChanges(); return(dbPlayer); }
private void ProcessPlayers(SquashContext context) { foreach (var player in players) { var dbPlayer = context.Players.Where(a => a.Name == player.Name.Trim()).FirstOrDefault(); dbPlayer = CreatePlayer(context, player.Name, dbPlayer); AddPoints(context, dbPlayer, date, player.Points); tournament.PlayerTournaments.Add(new PlayerTournament { Tournament = tournament, Player = dbPlayer }); } context.SaveChanges(); }
public async Task Process() { GetPlayers(); using (var _context = new SquashContext()) { using (var transaction = _context.Database.BeginTransaction()) { ProcessPlayers(_context); GetResults(_context); await _context.SaveChangesAsync(); await transaction.CommitAsync(); } } }
private void AddResults(SquashContext context, DBPlayer player1, DBPlayer player2, string[] results, Tournament tournament) { foreach (var result in results) { var score = result.Split(":"); int homeScore, awayScore; if (int.TryParse(score[0], out homeScore) && int.TryParse(score[1], out awayScore)) { var match = new Match { IsTraining = false, IsJogo = true, Player1 = player1, Player2 = player2, Games = { new Game { Player1Score = homeScore, Player2Score = awayScore } } }; tournament.Matches.Add(match); //context.Games.Add(new Game { Player1 = player1, Player2 = player2, Player1Score = homeScore, Player2Score = awayScore, Tournament = tournament }); } } context.SaveChanges(); }
public PlayerRepository(SquashContext squashContext) : base(squashContext) { }
private DBPlayer GetPlayer(SquashContext context, string name) { return(context.Players.Where(a => a.Name == name.Trim()).FirstOrDefault()); }