public async Task <ICollection <Enquete> > ExecuteAsync()
        {
            List <Enquete> enquetes = new List <Enquete>
            {
                new Enquete
                {
                    Id            = 1,
                    DateOuverture = new DateTime(2020, 3, 1),
                    DateFermeture = new DateTime(2020, 4, 30)
                },
                new Enquete
                {
                    Id            = 2,
                    DateOuverture = new DateTime(2020, 2, 1),
                    DateFermeture = new DateTime(2020, 2, 19)
                },
                new Enquete
                {
                    Id            = 3,
                    DateOuverture = new DateTime(2020, 4, 1),
                    DateFermeture = new DateTime(2020, 4, 5)
                },
                new Enquete
                {
                    Id            = 4,
                    DateOuverture = new DateTime(2020, 3, 1),
                    DateFermeture = new DateTime(2020, 3, 31)
                },
            };

            // Fills the authorizations.
            foreach (Enquete enquete in enquetes)
            {
                CloturerEnquetePolicyContext context = new CloturerEnquetePolicyContext
                {
                    Utilisateur = Utilisateur.CreateAdmin(),
                    Enquete     = enquete
                };

                var result = await this.cloturerEnqueteChecker.CheckPoliciesAsync(context).ConfigureAwait(false);

                enquete.CanCloture = result.Allowed;
            }

            return(enquetes);
        }
        public async Task <IActionResult> CloturerEnquete()
        {
            CloturerEnquetePolicyContext context = new CloturerEnquetePolicyContext
            {
                Utilisateur = Utilisateur.CreateAdmin(),
                Enquete     = Enquete.Create()
            };

            IPolicyResult <ICloturerEnquete> result = await this.cloturerEnqueteChecker.CheckPoliciesAsync(context).ConfigureAwait(false);

            if (result.Allowed)
            {
                result.Action.Execute(context.Enquete, context.Utilisateur);
                return(this.View(context.Enquete));
            }

            return(this.View("Unauthorized"));
        }