Exemplo n.º 1
0
        private void GetTournamentLadderChallenge()
        {
            ProgressReporterProvider.Current.ReportProgress("Enter the tournament name", ReporterImportance.High, ReporterAudience.Admin);
            var tournamentString = Console.ReadLine();

            ProgressReporterProvider.Current.ReportProgress("Enter the tournament year", ReporterImportance.High, ReporterAudience.Admin);
            var tournamentYearString = Console.ReadLine();

            var viewModel = new CalculateTournamentLadderChallengeViewModel
            {
                Tournament         = tournamentString,
                StartDate          = new DateTime(int.Parse(tournamentYearString), 06, 29),
                AllowRecalculation = false
            };

            var challengeLadders = this.tennisService.CalculateTournamentLadderChallenge(viewModel);

            int round           = 0;
            int playerCount     = 0;
            int maxLengthWinner = 0;
            int maxLengthLoser  = 0;

            foreach (var challengeLadder in challengeLadders)
            {
                if (round != challengeLadder.RoundNumber)
                {
                    maxLengthWinner = 5 + challengeLadders.Max(x => x.ExpectedWinner.Length);
                    maxLengthLoser  = 5 + challengeLadders.Max(x => x.ExpectedLoser.Length);
                    round++;
                    if (!(round == 1 && playerCount == 0))
                    {
                        Console.ReadLine();
                    }
                    ProgressReporterProvider.Current.ReportProgress(string.Format("Round {0}", challengeLadder.RoundNumber), ReporterImportance.High, ReporterAudience.Admin);
                }
                else if (playerCount % 16 == 0)
                {
                    ProgressReporterProvider.Current.ReportProgress(new String(' ', 10), ReporterImportance.High, ReporterAudience.Admin);
                    Console.ReadLine();
                }
                ProgressReporterProvider.Current.ReportProgress(
                    string.Format("{0}bt.\t{1}with probability {2}", challengeLadder.ExpectedWinner.PadRight(maxLengthWinner, ' '), challengeLadder.ExpectedLoser.PadRight(maxLengthLoser, ' '), challengeLadder.Probability.ToString("###.00%").PadLeft(10)),
                    ReporterImportance.Medium, ReporterAudience.Admin);
                playerCount++;
            }
            Console.ReadLine();
        }
Exemplo n.º 2
0
        public IEnumerable <ShowTournamentLadderChallengeViewModel> CalculateTournamentLadderChallenge(CalculateTournamentLadderChallengeViewModel viewModel)
        {
            ProgressReporterProvider.Current.ReportProgress(string.Format("Calculating tournament ladder challenge for {0}-{1}", viewModel.Tournament, viewModel.StartDate.ToShortDateString()), ReporterImportance.High, ReporterAudience.Admin);

            var ladders = this.tennisFixtureService.GetTournamentLadder(viewModel.StartDate, viewModel.Tournament);

            if (ladders.Count() == 0)
            {
                return(Enumerable.Empty <ShowTournamentLadderChallengeViewModel>());
            }

            var tournament = this.tennisFixtureService.GetTournament(viewModel.Tournament);

            var seed = new List <ShowTournamentLadderChallengeViewModel>();

            foreach (var ladder in ladders)
            {
                var openingRound = new ShowTournamentLadderChallengeViewModel
                {
                    ExpectedWinner          = string.Format("{0}, {1}", ladder.PlayerSurname, ladder.PlayerFirstName),
                    ExpectedWinnerFirstName = ladder.PlayerFirstName,
                    ExpectedWinnerSurname   = ladder.PlayerSurname,
                    RoundNumber             = 0
                };
                seed.Add(openingRound);
            }

            return
                (CalculateRoundTournamentLadderChallenge(seed, tournament.Slug, viewModel.StartDate.AddDays(3).Year, 1)
                 .Where(x => x.RoundNumber > 0));
        }
Exemplo n.º 3
0
    private void GetTournamentLadderChallenge()
    {
      ProgressReporterProvider.Current.ReportProgress("Enter the tournament name", ReporterImportance.High, ReporterAudience.Admin);
      var tournamentString = Console.ReadLine();
      ProgressReporterProvider.Current.ReportProgress("Enter the tournament year", ReporterImportance.High, ReporterAudience.Admin);
      var tournamentYearString = Console.ReadLine();

      var viewModel = new CalculateTournamentLadderChallengeViewModel
      {
        Tournament = tournamentString,
        StartDate = new DateTime(int.Parse(tournamentYearString), 06, 29),
        AllowRecalculation = false
      };

      var challengeLadders = this.tennisService.CalculateTournamentLadderChallenge(viewModel);

      int round = 0;
      int playerCount = 0;
      int maxLengthWinner = 0;
      int maxLengthLoser = 0;
      foreach (var challengeLadder in challengeLadders)
      {
        if (round != challengeLadder.RoundNumber)
        {
          maxLengthWinner = 5 + challengeLadders.Max(x => x.ExpectedWinner.Length);
          maxLengthLoser = 5 + challengeLadders.Max(x => x.ExpectedLoser.Length);
          round++;
          if (!(round == 1 && playerCount == 0))
            Console.ReadLine();
          ProgressReporterProvider.Current.ReportProgress(string.Format("Round {0}", challengeLadder.RoundNumber), ReporterImportance.High, ReporterAudience.Admin);
       }
        else if (playerCount % 16 == 0)
        {
          ProgressReporterProvider.Current.ReportProgress(new String(' ', 10), ReporterImportance.High, ReporterAudience.Admin);
          Console.ReadLine();
        }
        ProgressReporterProvider.Current.ReportProgress(
          string.Format("{0}bt.\t{1}with probability {2}", challengeLadder.ExpectedWinner.PadRight(maxLengthWinner, ' '), challengeLadder.ExpectedLoser.PadRight(maxLengthLoser, ' '), challengeLadder.Probability.ToString("###.00%").PadLeft(10)), 
          ReporterImportance.Medium, ReporterAudience.Admin);
        playerCount++;
      }
      Console.ReadLine();
    }
Exemplo n.º 4
0
    public IEnumerable<ShowTournamentLadderChallengeViewModel> CalculateTournamentLadderChallenge(CalculateTournamentLadderChallengeViewModel viewModel)
    {
      ProgressReporterProvider.Current.ReportProgress(string.Format("Calculating tournament ladder challenge for {0}-{1}", viewModel.Tournament, viewModel.StartDate.ToShortDateString()), ReporterImportance.High, ReporterAudience.Admin);

      var ladders = this.tennisFixtureService.GetTournamentLadder(viewModel.StartDate, viewModel.Tournament);
      if (ladders.Count() == 0)
        return Enumerable.Empty<ShowTournamentLadderChallengeViewModel>();

      var tournament = this.tennisFixtureService.GetTournament(viewModel.Tournament);

      var seed = new List<ShowTournamentLadderChallengeViewModel>();

      foreach (var ladder in ladders)
      {
        var openingRound = new ShowTournamentLadderChallengeViewModel
        {
          ExpectedWinner = string.Format("{0}, {1}", ladder.PlayerSurname, ladder.PlayerFirstName),
          ExpectedWinnerFirstName = ladder.PlayerFirstName,
          ExpectedWinnerSurname = ladder.PlayerSurname,
          RoundNumber = 0
        };
        seed.Add(openingRound);
      }

      return
        CalculateRoundTournamentLadderChallenge(seed, tournament.Slug, viewModel.StartDate.AddDays(3).Year, 1)
          .Where(x => x.RoundNumber > 0);
    }