예제 #1
0
        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));
        }
예제 #2
0
        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);
        }