コード例 #1
0
        public override void OnActionExecuting(ActionExecutingContext context)
        {
            TakeArgumentAndWriteToSession(context, "sessiecode");

            if (ReadSessieFromSession(context.HttpContext) != null)
            {
                // Sessieobject opvragen uit repository aan de hand van cookie "sessiecode".
                _sessie = _sessieRepository.GetBySessieCode(ReadSessieFromSession(context.HttpContext));
                _sessie.SwitchState(_sessie.State);

                // Deze switchstate dient om de _currentState van elke groep goed te zetten.
                // Staat ook in de setter van Groep.State maar doet niet zijn ding.
                foreach (Groep groep in _sessie.Groepen)
                {
                    groep.SwitchState(groep.State);
                }

                IsSessieNonActief(context);
                TakeArgumentAndWriteToSession(context, "groepid");

                // Toekennen aan argumenten van de action method. Vang je op via (Sessie sessie).
                context.ActionArguments["sessie"] = _sessie;

                // Check of de cookie "groepid" leeg is.
                if (ReadGroepFromSession(context.HttpContext) != null)
                {
                    // Gekozen groepobject halen uit sessie.
                    _groep = _sessie.Groepen.FirstOrDefault(g => g.GroepId == Int32.Parse(ReadGroepFromSession(context.HttpContext)));
                    _groep.SwitchState(_groep.State);

                    //IsGroepGeblokkeerd(context);

                    // Toekennen aan argumenten van de action method.
                    context.ActionArguments["groep"] = _groep;
                }
                else
                {
                    context.ActionArguments["groep"] = null;
                }
            }
            else
            {
                context.ActionArguments["sessie"] = null;
            }

            base.OnActionExecuting(context);
        }