Example #1
0
        public async Task Create(FantasyLeague fantasyLeague)
        {
            if (!await WeeksExist(fantasyLeague.FantasyLeagueID))
            {
                DateTime startDate = DateTime.Today.AddDays(-1);
                int      numWeeks  = (fantasyLeague.TeamsNav.Count() - 1) * 2;
                List <FantasyMatchupWeeks> list = new List <FantasyMatchupWeeks>();

                for (int i = 1; i <= numWeeks; i++)
                {
                    FantasyMatchupWeeks week = new FantasyMatchupWeeks
                    {
                        FantasyLeagueNav = fantasyLeague,
                        WeekNum          = i,
                        Date             = startDate.AddDays(i),
                    };
                    list.Add(week);
                }
                await _context.FantasyMatchupWeeks.AddRangeAsync(list);

                await _context.SaveChangesAsync();

                return;
            }
        }
        private async Task <Game> HasGameTonightAsync(FantasyMatchupWeeks matchupWeek, int teamID)
        {
            var gameTonight = await _context.Game
                              .Include(g => g.PlayerGameStatsNav)
                              .Include(g => g.HomeTeamNav)
                              .Include(g => g.AwayTeamNav)
                              .Where(g => g.DateTime.Date == matchupWeek.Date)
                              .Where(g => g.AwayTeamID == teamID || g.HomeTeamID == teamID)
                              .FirstOrDefaultAsync();

            return(gameTonight);
        }
        public async Task <List <PlayerGameStats> > GetGameStatsListAsync(IEnumerable <PlayerMyTeam> roster, FantasyMatchupWeeks matchupWeek)
        {
            List <PlayerGameStats> statsList = new List <PlayerGameStats>();

            foreach (PlayerMyTeam player in roster)
            {
                var gameTonight = await HasGameTonightAsync(matchupWeek, player.PlayerNav.TeamID);

                if (gameTonight != null)
                {
                    var stats = await _playerGameStatsService.GetPlayerGameStatsByGameAsync(player.PlayerNav.PlayerID, gameTonight.GameID);

                    if (stats != null)
                    {
                        statsList.Add(stats);
                    }
                }
            }
            return(statsList);
        }
        public async Task <Dictionary <string, PlayerGameStats> > GetGameStatsDictionaryAsync(IDictionary <string, Player> roster, FantasyMatchupWeeks matchupWeek)
        {
            Dictionary <string, PlayerGameStats> statsDictionary = new Dictionary <string, PlayerGameStats>
            {
                { "PG1", null },
                { "PG2", null },
                { "SG1", null },
                { "SG2", null },
                { "SF1", null },
                { "SF2", null },
                { "PF1", null },
                { "PF2", null },
                { "C", null },
            };

            foreach (KeyValuePair <string, Player> player in roster)
            {
                if (player.Value != null)
                {
                    var gameTonight = await HasGameTonightAsync(matchupWeek, player.Value.TeamID);

                    if (gameTonight != null)
                    {
                        var stats = await _playerGameStatsService.GetPlayerGameStatsByGameAsync(player.Value.PlayerID, gameTonight.GameID);

                        if (stats != null)
                        {
                            statsDictionary[player.Key] = stats;;
                        }
                    }
                }
            }
            return(statsDictionary);
        }
        public async Task <Dictionary <string, string> > GetOpponentLogoDictionaryAsync(IDictionary <string, Player> roster, FantasyMatchupWeeks matchupWeek)
        {
            Dictionary <string, string> OppDictionary = new Dictionary <string, string>
            {
                { "PG1", null },
                { "PG2", null },
                { "SG1", null },
                { "SG2", null },
                { "SF1", null },
                { "SF2", null },
                { "PF1", null },
                { "PF2", null },
                { "C", null },
            };

            foreach (KeyValuePair <string, Player> player in roster)
            {
                if (player.Value != null)
                {
                    var gameTonight = await HasGameTonightAsync(matchupWeek, player.Value.TeamID);

                    if (gameTonight != null)
                    {
                        OppDictionary[player.Key] = (gameTonight.AwayTeamID == player.Value.TeamID ? gameTonight.HomeTeamNav.WikipediaLogoUrl : gameTonight.AwayTeamNav.WikipediaLogoUrl);
                    }
                }
            }
            return(OppDictionary);
        }