예제 #1
0
        public PlayerPredictions PlayerSimulator(GamePredictions game, Players player)
        {
            List <PlayerStats> fullStats  = _getStatMethods.GetFullSeasonStatsWithPlayer(player);
            List <FullSeason>  fullSeason = _getStatMethods.GetFullSeasonList(player.Team);
            PlayerPredictions  stats      = new PlayerPredictions();

            return(stats);
        }
예제 #2
0
        public ActionResult Index(int?id)
        {
            var tournament = db.Tournaments.SingleOrDefault(x => x.IsActive);

            if (tournament != null)
            {
                id = tournament.Id;
            }
            if (id == null)
            {
                return(RedirectToAction("List", "Home"));
            }
            var userId = User.Identity.GetUserId();

            if (userId == null)
            {
                return(RedirectToAction("Login", "Account"));
            }
            var userGuid = new Guid(userId);

            var result = new TournamentMain();

            result.Tournament          = db.Tournaments.Include(t => t.Country).Include(t => t.Matchups).Where(x => x.Id == id).First();
            result.Tournament.Matchups = result.Tournament.Matchups.OrderBy(x => x.GameTime).ToList();

            var isInTournament = db.PlayerTournaments.Any(x => x.TournamentId == id.Value && x.ApsnetUserId == userGuid);

            if (!isInTournament)
            {
                var playerTournament = new PlayerTournament()
                {
                    TournamentId = id.Value,
                    ApsnetUserId = userGuid,
                };
                db.PlayerTournaments.Add(playerTournament);
                foreach (var matchup in result.Tournament.Matchups)
                {
                    var prediction = new Prediction()
                    {
                        AspNetUserId = userGuid,
                        MatchupId    = matchup.Id,
                    };
                    db.Predictions.Add(prediction);
                }
                db.SaveChanges();
            }

            foreach (var matchup in result.Tournament.Matchups)
            {
                if (matchup.GameTime > DateTime.UtcNow.AddHours(3).AddMinutes(result.Tournament.MatchupClosingTime))
                {
                    matchup.CanVote = true;
                }
            }
            var allCountries = db.Countries.ToList();
            var cc           = allCountries.Last();
            var players      = db.PlayerTournaments.Where(x => x.TournamentId == id).ToList();

            result.PlayerPredictions = new List <PlayerPredictions>();
            foreach (var player in players)
            {
                var playerPrediction = new PlayerPredictions();
                playerPrediction.Name = db.Users.Find(player.ApsnetUserId.ToString()).UserName;
                var predictions = db.Predictions.Include(t => t.Matchup).Include(t => t.Matchup.Country).Where(x => x.AspNetUserId == player.ApsnetUserId).OrderBy(x => x.Matchup.GameTime).ToList();
                playerPrediction.Predictions = predictions;
                playerPrediction.Total       = predictions.Sum(x => x.PointsEarned ?? 0);
                playerPrediction.UserId      = player.ApsnetUserId;
                foreach (var prediction in predictions)
                {
                    if (prediction.Matchup.GameTime > DateTime.UtcNow.AddHours(3).AddMinutes(result.Tournament.MatchupClosingTime) && prediction.AspNetUserId != userGuid)
                    {
                        prediction.EnemyTeamScoreText = GetHiddenScoreText(prediction.EnemyTeamScore);
                        prediction.HomeTeamScoreText  = GetHiddenScoreText(prediction.HomeTeamScore);
                    }
                    else
                    {
                        prediction.EnemyTeamScoreText = prediction.EnemyTeamScore?.ToString() ?? "-";
                        prediction.HomeTeamScoreText  = prediction.HomeTeamScore?.ToString() ?? "-";
                    }
                }

                result.PlayerPredictions.Add(playerPrediction);
            }
            result.PlayerPredictions = result.PlayerPredictions.OrderByDescending(x => x.UserId == userGuid).ThenByDescending(x => x.Total).ToList();
            return(View(result));
        }