public JsonResult GetNextGame() { Game game = this._service.GetNextGame(this.HttpContext.User.Identity.GetUserId()); if (game != null) { NextGameViewModel viewModel = new NextGameViewModel() { id = game.Id, start = game.Start.ToString(), groupName = game.Group.Name }; return(this.Json(viewModel, JsonRequestBehavior.AllowGet)); } NextGameViewModel viewModelNull = new NextGameViewModel() { id = "", start = "" }; return(this.Json(viewModelNull, JsonRequestBehavior.AllowGet)); }
private static NextGameViewModel ParseNextGameCycle(int currentUserId, GamesCycle gameCycle, int leagueId, int?seasonId = null) { NextGameViewModel gvm = new NextGameViewModel(); if (gameCycle != null) { IEnumerable <UserBaseViewModel> FansList = GetGoingFans(gameCycle.CycleId, currentUserId).OrderByDescending(t => t.FriendshipStatus); gvm = new NextGameViewModel { LeagueId = leagueId, GameId = gameCycle.CycleId, GameCycleStatus = gameCycle.GameStatus, StartDate = gameCycle.StartDate, HomeTeamId = gameCycle.HomeTeamId, HomeTeamScore = gameCycle.HomeTeamScore, GuestTeamId = gameCycle.GuestTeamId, GuestTeamScore = gameCycle.GuestTeamScore, Auditorium = gameCycle.Auditorium != null ? gameCycle.Auditorium.Name : null, FansList = FansList.ToList(), FriendsGoing = FansList.Count(t => t.FriendshipStatus == FriendshipStatus.Yes), FansGoing = FansList.Count(t => t.FriendshipStatus != FriendshipStatus.Yes), HomeTeamLogo = gameCycle != null && gameCycle.HomeTeam != null ? gameCycle.HomeTeam.Logo : string.Empty, GuestTeamLogo = gameCycle != null && gameCycle.GuestTeam != null ? gameCycle.GuestTeam.Logo : string.Empty, CycleNumber = gameCycle.CycleNum }; var alias = gameCycle?.Stage?.League?.Union?.Section?.Alias; switch (alias) { case GamesAlias.WaterPolo: case GamesAlias.BasketBall: if (gameCycle.GameSets.Any()) { gvm.HomeTeamScore = gameCycle.GameSets.Sum(x => x.HomeTeamScore); gvm.GuestTeamScore = gameCycle.GameSets.Sum(x => x.GuestTeamScore); } break; } if (gameCycle.Group != null && gameCycle.Group.IsAdvanced && gameCycle.Group.PlayoffBrackets != null) { int numOfBrackets = gameCycle.Group.PlayoffBrackets.Count; switch (numOfBrackets) { case 1: gvm.PlayOffType = Messages.Final; break; case 2: gvm.PlayOffType = Messages.Semifinals; break; case 4: gvm.PlayOffType = Messages.Quarter_finals; break; case 8: gvm.PlayOffType = Messages.Final_Eighth; break; default: gvm.PlayOffType = (numOfBrackets * 2) + " " + Messages.FinalNumber; break; } } var me = gvm.FansList.FirstOrDefault(t => t.Id == currentUserId); if (me != null) { gvm.IsGoing = 1; } if (seasonId.HasValue && gameCycle.HomeTeam != null && gameCycle.GuestTeam != null) { var homeTeamDetails = gameCycle.HomeTeam.TeamsDetails.FirstOrDefault(t => t.SeasonId == seasonId.Value); gvm.HomeTeam = homeTeamDetails != null ? homeTeamDetails.TeamName : gameCycle.HomeTeam.Title; var guestTeamDetails = gameCycle.GuestTeam.TeamsDetails.FirstOrDefault(t => t.SeasonId == seasonId.Value); gvm.GuestTeam = guestTeamDetails != null ? guestTeamDetails.TeamName : gameCycle.GuestTeam.Title; } else { gvm.HomeTeam = gameCycle.HomeTeam != null ? gameCycle.HomeTeam.Title : string.Empty; gvm.GuestTeam = gameCycle.GuestTeam != null ? gameCycle.GuestTeam.Title : string.Empty; } } return(gvm); }