// 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)); } }
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); }
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)); }
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); }
// 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)); } }