ChessSharp.Web.Controllers.BaseController.Initialize C# (CSharp) Method

Initialize() protected method

protected Initialize ( System requestContext ) : void
requestContext System
return void
        protected override void Initialize(System.Web.Routing.RequestContext requestContext)
        {
            base.Initialize(requestContext);

            if (HttpContext != null)
                Username = HttpContext.User.Identity.Name;

            if (!String.IsNullOrEmpty(Username))
            {
                GetCurrentChessPlayer(Username);

                var challenges =
                    UnitOfWork.All<Challenge>(c => c.ChallengingPlayer.Id != CurrentUser.Id && c.Accepted == null)
                        .Where(c => c.LightPlayer.Id == CurrentUser.Id || c.DarkPlayer.Id == CurrentUser.Id);

                var openChallenges = challenges.Select(c => new ExistingChallengeViewModel()
                {
                    Accepted = false,
                    ChallengeTitle = c.Title,
                    DateTime = c.DateTime,
                    Id = c.ChallengeId,
                    Opponent = c.ChallengingPlayer,
                    OpponentTeam = c.LightPlayer == c.ChallengingPlayer ? Team.Light : Team.Dark
                }).ToList();

                var lightGames = UnitOfWork.All<Game>(g => g.LightPlayer == CurrentUser && !g.Complete);
                var darkGames = UnitOfWork.All<Game>(g => g.DarkPlayer == CurrentUser && !g.Complete);

                var openGames = new List<GamePreviewViewModel>();
                foreach (var game in lightGames)
                {
                    var model = AutoMapper.Mapper.Map<GamePreviewViewModel>(game);
                    model.IsPlayersTurn = game.MoveCount % 2 == 0;
                    model.OpponentName = model.DarkPlayerName;
                    openGames.Add(model);
                }
                foreach (var game in darkGames)
                {
                    var model = AutoMapper.Mapper.Map<GamePreviewViewModel>(game);
                    model.IsPlayersTurn = game.MoveCount % 2 == 1;
                    model.OpponentName = model.LightPlayerName;
                    openGames.Add(model);
                }

                Session["__OpenChallenges"] = openChallenges;
                Session["__OpenGames"] = openGames;
            }
        }