Esempio n. 1
0
        // GET: LeagueTable
        public ActionResult Index(int id, int seasonId, int?union = null)
        {
            string sectionAlias;

            if (union.HasValue)
            {
                var section = _unionsRepo.GetSectionByUnionId(union.Value);
                sectionAlias = section.Alias;
            }
            else
            {
                var section = _sectionsRepo.GetByLeagueId(id);
                sectionAlias = section?.Alias;
            }

            LeagueRankService svc     = new LeagueRankService(id);
            RankLeague        rLeague = svc.CreateLeagueRankTable(seasonId);

            // rLeague.Stages = rLeague.Stages.Where(x => x.Groups.All(y => !y.IsAdvanced)).ToList();


            if (rLeague.Stages.Count == 0)
            {
                rLeague = svc.CreateEmptyRankTable(seasonId);
                rLeague.IsEmptyRankTable = true;
            }

            if (rLeague.Stages.Count == 0)
            {
                rLeague.Teams = _teamsRepo.GetTeams(seasonId, id).ToList();
            }
            rLeague.SeasonId = seasonId;

            switch (sectionAlias)
            {
            case GamesAlias.WaterPolo:
                return(View("Waterpolo/Index", rLeague));

            case GamesAlias.BasketBall:
                return(View("Basketball/Index", rLeague));

            case GamesAlias.NetBall:
            case GamesAlias.VolleyBall:
                return(View("Netball_VolleyBall/Index", rLeague));

            default:
                return(View(rLeague));
            }
        }
Esempio n. 2
0
        public static List <RankTeam> GetRankedTeams(int leagueId, int teamId, int?seasonId)
        {
            var resList = new List <RankTeam>();

            var        leagueRankService = new LeagueRankService(leagueId);
            RankLeague rLeague           = leagueRankService.CreateLeagueRankTable(seasonId);

            if (rLeague != null)
            {
                var stage = rLeague.Stages.OrderByDescending(t => t.Number).FirstOrDefault();
                if (stage == null)
                {
                    return(null);
                }

                var group = stage.Groups.FirstOrDefault(gr => gr.Teams.Any(t => t.Id == teamId));
                if (group == null)
                {
                    return(null);
                }

                var teams = group.Teams.OrderBy(t => t.Position).ToList();
                for (int i = 0; i < teams.Count; i++)
                {
                    if (teams[i].Id == teamId)
                    {
                        if (i > 0)
                        {
                            resList.Add(teams[i - 1]);
                        }

                        resList.Add(teams[i]);

                        if (i < teams.Count - 1)
                        {
                            resList.Add(teams[i + 1]);
                        }
                    }
                }
            }

            return(resList);
        }
Esempio n. 3
0
        public IHttpActionResult Rank(int id, string ln)
        {
            CultureModel.ChangeCulture(ln);
            var leagueRank = new LeagueRank
            {
                Stages = new List <StageRank>()
            };

            int?seasonId              = seasonsRepo.GetLastSeasonByLeagueId(id);
            LeagueRankService svc     = new LeagueRankService(id);
            RankLeague        rLeague = svc.CreateLeagueRankTable(seasonId) ?? new RankLeague();

            foreach (var stage in rLeague.Stages)
            {
                if (stage.Groups.All(g => g.IsAdvanced))
                {
                    continue;
                }
                var rankStage = new StageRank();
                var nameStage = "";
                if (stage.Groups.Any() && stage.Groups.All(g => g.IsAdvanced))
                {
                    var firstGroup = stage.Groups.FirstOrDefault();
                    if (firstGroup != null && firstGroup.PlayoffBrackets != null)
                    {
                        int numOfBrackets = (int)firstGroup.PlayoffBrackets;
                        switch (numOfBrackets)
                        {
                        case 1:
                            nameStage = Messages.Final; break;

                        case 2:
                            nameStage = Messages.Semifinals; break;

                        case 4:
                            nameStage = Messages.Quarter_finals;
                            break;

                        case 8:
                            nameStage = Messages.Final_Eighth;
                            break;

                        default:
                            nameStage = (numOfBrackets * 2) + Messages.FinalNumber;
                            break;
                        }
                    }
                }
                else
                {
                    nameStage = Messages.Stage + stage.Number;
                }

                rankStage.NameStage = nameStage;
                rankStage.Groups    = new List <GroupRank>();

                foreach (var group in stage.Groups)
                {
                    var rankGroup = new GroupRank
                    {
                        NameGroup = @group.Title,
                        Teams     = new List <TeamRank>()
                    };

                    for (var i = 0; i < group.Teams.Count(); i++)
                    {
                        var rankTeam = new TeamRank
                        {
                            Team = @group.Teams[i].Title,
                            Logo = @group.Teams[i].Logo
                        };

                        int numOfBrackets = (int)group.PlayoffBrackets;
                        rankTeam.Position = i % (numOfBrackets) == 0 ? (i + 1).ToString() : "-";

                        rankGroup.Teams.Add(rankTeam);
                    }
                    rankStage.Groups.Add(rankGroup);
                }
                leagueRank.Stages.Add(rankStage);
            }

            return(Ok(leagueRank));
        }
Esempio n. 4
0
        internal static TeamInfoViewModel GetTeamInfo(Team team, int leagueId, int?seasonId = null)
        {
            if (!team.LeagueTeams.Any(l => l.LeagueId == leagueId))
            {
                return(null);
            }

            var vm = new TeamInfoViewModel();

            //teamId
            vm.TeamId = team.TeamId;

            //"place": 7,
            //"ratio": "2:3",
            //"succsessLevel": 59,
            LeagueRankService leagueRankService = new LeagueRankService(leagueId);
            RankLeague        rLeague           = leagueRankService.CreateLeagueRankTable(seasonId);

            if (rLeague != null)
            {
                var       stage = rLeague.Stages.OrderByDescending(t => t.Number).FirstOrDefault();
                RankGroup group;
                if (stage != null)
                {
                    group = stage.Groups.Where(gr => gr.Teams.Any(t => t.Id == team.TeamId)).FirstOrDefault();
                    RankTeam rTeam = null;
                    if (group != null)
                    {
                        rTeam = group.Teams.Where(t => t.Id == team.TeamId).FirstOrDefault();
                    }
                    if (rTeam != null)
                    {
                        vm.Place = int.Parse(rTeam.Position);
                        vm.Ratio = rTeam.SetsLost.ToString() + ":" + rTeam.SetsWon.ToString();
                        if (rTeam.Games == 0)
                        {
                            vm.SuccsessLevel = 0;
                        }
                        else
                        {
                            double wins  = rTeam.Wins;
                            double games = rTeam.Games;
                            double ratio = (wins / games) * 100;
                            vm.SuccsessLevel = Convert.ToInt32(ratio);
                        }
                    }
                }
            }
            vm.Logo     = team.Logo;
            vm.Image    = team.PersonnelPic;
            vm.League   = team.LeagueTeams.Where(tl => tl.LeagueId == leagueId).FirstOrDefault().Leagues.Name;
            vm.LeagueId = leagueId;

            if (seasonId.HasValue)
            {
                TeamsDetails teamsDetails = team.TeamsDetails.FirstOrDefault(x => x.SeasonId == seasonId);
                vm.Title = teamsDetails != null ? teamsDetails.TeamName : team.Title;
            }
            else
            {
                vm.Title = team.Title;
            }

            return(vm);
        }
Esempio n. 5
0
        // GET: LeagueRank/Details/5
        public ActionResult Details(int id, int seasonId, int unionId)
        {
            var section      = _unionsRepo.GetSectionByUnionId(unionId);
            var sectionAlias = section.Alias;

            LeagueRankService svc     = new LeagueRankService(id);
            RankLeague        rLeague = svc.CreateLeagueRankTable(seasonId);

            if (rLeague == null)
            {
                rLeague = new RankLeague();
            }

            else if (rLeague.Stages.Count == 0)
            {
                rLeague = svc.CreateEmptyRankTable(seasonId);
                rLeague.IsEmptyRankTable = true;

                if (rLeague.Stages.Count == 0)
                {
                    if (User.IsInAnyRole(AppRole.Workers))
                    {
                        switch (usersRepo.GetTopLevelJob(base.AdminId))
                        {
                        case JobRole.UnionManager:
                            rLeague.Teams = _teamsRepo.GetTeams(seasonId, id).ToList();
                            break;

                        case JobRole.LeagueManager:
                            rLeague.Teams = _teamsRepo.GetTeams(seasonId, id).ToList();
                            break;

                        case JobRole.TeamManager:
                            rLeague.Teams = _teamsRepo.GetByManagerId(base.AdminId, seasonId);
                            break;
                        }
                    }
                    else
                    {
                        rLeague.Teams = _teamsRepo.GetTeams(seasonId, id).ToList();
                    }
                }
            }


            switch (sectionAlias)
            {
            case GamesAlias.WaterPolo:
                return(PartialView("Waterpolo/_Details", rLeague));

            case GamesAlias.BasketBall:
                return(PartialView("Basketball/_Details", rLeague));

            case GamesAlias.NetBall:
            case GamesAlias.VolleyBall:
                //TODO display extended table
                return(PartialView("Netball_VolleyBall/_Details", rLeague));

            default:
                return(PartialView("_Details", rLeague));
            }
        }