Ejemplo n.º 1
0
 private List <TeamDto> GetTeamParameters(int leagueId)
 {
     return(db.Franchises
            .Where(a => a.LeagueId == leagueId)
            .Select(a => TeamDto.Create(a.CurrentTeam))
            .OrderBy(a => a.Name)
            .ToList());
 }
Ejemplo n.º 2
0
        private TeamDto GetTeam(int teamId)
        {
            TeamDto teamDto = null;

            if (teamId > 0)
            {
                teamDto = db.Teams.Select(a => TeamDto.Create(a)).FirstOrDefault(a => a.Id == teamId);
            }
            return(teamDto);
        }
Ejemplo n.º 3
0
        public StatTableDto GetPlayerGoalieTable(int goalieId, StatParametersDto paramDto)
        {
            StatTableDto      statTableDto    = new StatTableDto();
            StatParametersDto cleanParameters = CleanPlayerParameters(paramDto);

            using (db = new BojoBoxContext())
            {
                LeagueDto leagueDto = GetLeague(cleanParameters.League.Value);
                TeamDto   teamDto   = GetTeam(cleanParameters.Team.Value);
                PlayerDto goalieDto = GetGoalie(goalieId);

                statTableDto.HeaderText = goalieDto.Name;

                var goalieSeasonsQuery = db.GoalieSeasons
                                         .Include(a => a.Goalie)
                                         .Include(a => a.Team)
                                         .Include(a => a.League)
                                         .Where(a => a.GoalieId == goalieDto.Id);

                bool isPlayoffs = CheckIfPlayoffs(cleanParameters.SeasonType.Value);
                goalieSeasonsQuery = goalieSeasonsQuery.Where(a => a.isPlayoffs == isPlayoffs);

                if (cleanParameters.League > 0)
                {
                    goalieSeasonsQuery = goalieSeasonsQuery.Where(a => a.LeagueId == leagueDto.Id);
                }

                int teamCount = goalieSeasonsQuery.Where(a => a.Team != null).Select(a => a.Team.Id).Distinct().Count();

                statTableDto.Teams = goalieSeasonsQuery.Select(a => a.Team).Where(a => a != null).DistinctBy(a => a.Id).Select(a => TeamDto.Create(a)).ToList();

                if (cleanParameters.Team > 0)
                {
                    goalieSeasonsQuery = goalieSeasonsQuery.Where(a => a.TeamId == cleanParameters.Team);
                }
                else
                {
                    goalieSeasonsQuery = goalieSeasonsQuery.Where(a => a.SubtotalForId == null);
                }

                List <GoalieSeasonFullDto> goalieSeasonDtos = goalieSeasonsQuery.Select(a => GoalieSeasonFullDto.Create(a)).ToList();

                int i = 1;
                List <PlayerTableRow> rows = new List <PlayerTableRow>();
                foreach (var dto in goalieSeasonDtos)
                {
                    PlayerTableRow row = new PlayerTableRow();
                    row.Player = dto.Goalie;
                    row.Rank   = i++;
                    row.Season = dto.Season;
                    row.Team   = dto.Team;
                    row.Stats  = GetGoalieStats(dto);
                    rows.Add(row);
                }

                if (cleanParameters.Col == null)
                {
                    rows = rows.OrderByDescending(a => a.Season).ToList();
                }
                else
                {
                    rows = rows.OrderByDescending(a => a.Stats.ElementAt(cleanParameters.Col.Value)).ThenByDescending(a => a.Stats.ElementAt(13)).ToList();
                }

                statTableDto.PlayerRows = rows;

                List <int> totals = new List <int>();
                if (rows.Any())
                {
                    totals = GetTotals(rows);
                    totals.Insert(0, teamCount);
                    totals.Insert(0, rows.Count());
                }
                statTableDto.Totals = totals;
            }

            statTableDto.DisplayType    = "player";
            statTableDto.PlayerType     = "goalie";
            statTableDto.StatParameters = cleanParameters;
            return(statTableDto);
        }