コード例 #1
0
        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("&nbsp;", ""), 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();
        }
コード例 #2
0
        private void AddPoints(SquashContext context, DBPlayer player, DateTime date, string points)
        {
            var dbPoints = new Points {
                Date = date, Number = points
            };

            player.Points.Add(dbPoints);
        }
コード例 #3
0
 public AppController(IMailService mailService,
                      IConfigurationRoot config,
                      SquashContext context,
                      ISquashRepository repo,
                      ILogger <AppController> logger)
 {
     _mailService = mailService;
     _config      = config;
     _repo        = repo;
     _logger      = logger;
 }
コード例 #4
0
        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++);
            }
        }
コード例 #5
0
 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);
 }
コード例 #6
0
 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();
 }
コード例 #7
0
        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();
                }
            }
        }
コード例 #8
0
 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();
 }
コード例 #9
0
 public PlayerRepository(SquashContext squashContext) : base(squashContext)
 {
 }
コード例 #10
0
 private DBPlayer GetPlayer(SquashContext context, string name)
 {
     return(context.Players.Where(a => a.Name == name.Trim()).FirstOrDefault());
 }