Пример #1
0
        public ActionResult nouvelles(int?page)
        {
            Entities  db        = new Entities();
            const int nbParPage = 5;

            List <NOUVELLE>         lstN         = db.GetNouvellesLocalisees(Session).ToList();
            ListePaginee <NOUVELLE> nouvPaginees =
                new ListePaginee <NOUVELLE>(lstN, page ?? 0, nbParPage);

            ViewData[Constantes.CLE_NOUVELLES] = nouvPaginees;

            return(View("Nouvelles"));
        }
Пример #2
0
        //Affiche la page de gestion des comptes
        //Utilise un ordre et un numéro de page pour faire fonctionner le système de tri
        public async Task <IActionResult> AfficherGestionCompte(String ordre, int?page)
        {
            if (HttpContext.Session.GetInt32("_Id") == null || HttpContext.Session.GetInt32("_Type") < 3)
            {
                return(RedirectToAction("Login", "Compte"));
            }

            //nombre de billet par page
            int nbElementParPage = 5;

            IOrderedQueryable <Compte> listeCompte;

            switch (ordre)
            {
            case "IdUp":
                listeCompte = _context.Compte.Include(b => b.Equipe).OrderBy(c => c.Id);
                break;

            case "IdDown":
                listeCompte = _context.Compte.Include(b => b.Equipe).OrderByDescending(c => c.Id);
                break;

            case "PrenomUp":
                listeCompte = _context.Compte.Include(b => b.Equipe).OrderBy(c => c.Prenom);
                break;

            case "PrenomDown":
                listeCompte = _context.Compte.Include(b => b.Equipe).OrderByDescending(c => c.Prenom);
                break;

            case "NomUp":
                listeCompte = _context.Compte.Include(b => b.Equipe).OrderBy(c => c.Nom);
                break;

            case "NomDown":
                listeCompte = _context.Compte.Include(b => b.Equipe).OrderByDescending(c => c.Nom);
                break;

            case "CourrielUp":
                listeCompte = _context.Compte.Include(b => b.Equipe).OrderBy(c => c.Courriel);
                break;

            case "CourrielDown":
                listeCompte = _context.Compte.Include(b => b.Equipe).OrderByDescending(c => c.Courriel);
                break;

            case "EquipeUp":
                listeCompte = _context.Compte.Include(b => b.Equipe).OrderBy(c => c.Equipe.Nom);
                break;

            case "EquipeDown":
                listeCompte = _context.Compte.Include(b => b.Equipe).OrderByDescending(c => c.Equipe.Nom);
                break;

            case "TypeUp":
                listeCompte = _context.Compte.Include(b => b.Equipe).OrderBy(c => c.Type);
                break;

            case "TypeDown":
                listeCompte = _context.Compte.Include(b => b.Equipe).OrderByDescending(c => c.Type);
                break;

            case "EtatUp":
                listeCompte = _context.Compte.Include(b => b.Equipe).OrderBy(c => c.Actif);
                break;

            case "EtatDown":
                listeCompte = _context.Compte.Include(b => b.Equipe).OrderByDescending(c => c.Actif);
                break;

            default:
                ordre       = "IdDown";
                listeCompte = _context.Compte.Include(b => b.Equipe).OrderByDescending(c => c.Id);
                break;
            }
            ViewData["ordre"] = ordre;
            return(View("GestionCompte", await ListePaginee <Compte> .CreateAsync(listeCompte, page ?? 1, nbElementParPage)));
        }
Пример #3
0
        //Joel Lutumba - 2017-09-30
        //Paramètre ordre est utilisé pour savoir quels billets aller chercher & afficher
        //Paramètre page peut être null; il sert à la pagination.
        public async Task <IActionResult> Index(String ordre, int?page, string sort, string direction)
        {
            if (HttpContext.Session.GetInt32("_Id") == null)
            {
                return(RedirectToAction("Login", "Compte"));
            }
            //Compte connecté
            Compte compte = _context.Compte.SingleOrDefault(cpt => cpt.Id == HttpContext.Session.GetInt32("_Id"));

            //nombre de billet par page
            int nbElementParPage = 5;

            string param;

            switch (sort)
            {
            case "Titre":
                param = "Titre";
                break;

            case "Description":
                param = "Description";
                break;

            case "Etat":
                param = "Etat";
                break;

            case "Auteur":
                param = "Auteur";
                break;

            case "Departement":
                param = "Departement";
                break;

            default:
                param     = "Id";
                direction = "Down";
                break;
            }

            var propertyInfo = typeof(Billet).GetProperty(param);

            // renvoie la vue billet seulement avec les billets que l'utiilisateur connecté à composé
            if (ordre == "compose" && compte.Actif)
            {
                ViewData["NomListeBillet"] = "composés";
                ViewData["ordre"]          = "compose";
                ViewData["direction"]      = direction;
                ViewData["sort"]           = sort;
                var projetGestionAssistanceContext = _context.Billet.Include(b => b.Auteur).Include(b => b.Departement).Where(b => b.AuteurId == compte.Id);
                if (direction == "Down")
                {
                    projetGestionAssistanceContext = projetGestionAssistanceContext.OrderByDescending(b => propertyInfo.GetValue(b));
                }
                else
                {
                    projetGestionAssistanceContext = projetGestionAssistanceContext.OrderBy(b => propertyInfo.GetValue(b));
                }
                return(View(await ListePaginee <Billet> .CreateAsync(projetGestionAssistanceContext, page ?? 1, nbElementParPage)));
            }

            // vérifie si l'utilisateur est minimalement un employé de service   => mise en place pour l'ajout d'assignation
            else if (ordre == "assigne" && compte.Type >= 1 && compte.Actif)
            {
                ViewData["NomListeBillet"] = "assignés";
                ViewData["ordre"]          = "assigne";
                ViewData["direction"]      = direction;
                ViewData["sort"]           = sort;
                //var equipe = _context.Compte.SingleOrDefault(e => e.Id == compte.EquipeId);
                var projetGestionAssistanceContext = _context.Billet.Include(b => b.Auteur).Include(b => b.Departement).Where(b => b.EquipeId == compte.EquipeId).Where(b => b.CompteId == compte.Id);
                return(View(await ListePaginee <Billet> .CreateAsync(projetGestionAssistanceContext, page ?? 1, nbElementParPage)));
            }

            else if (ordre == "equipe" && compte.Type >= 1 && compte.Actif)
            {
                ViewData["NomListeBillet"] = "équipe";
                ViewData["ordre"]          = "equipe";
                //var equipe = _context.Compte.SingleOrDefault(e => e.Id == compte.EquipeId);
                var projetGestionAssistanceContext = _context.Billet.Include(b => b.Auteur).Include(b => b.Departement).Where(b => b.EquipeId == compte.EquipeId);
                if (direction == "Down")
                {
                    projetGestionAssistanceContext = projetGestionAssistanceContext.OrderByDescending(b => propertyInfo.GetValue(b));
                }
                else
                {
                    projetGestionAssistanceContext = projetGestionAssistanceContext.OrderBy(b => propertyInfo.GetValue(b));
                }
                return(View(await ListePaginee <Billet> .CreateAsync(projetGestionAssistanceContext, page ?? 1, nbElementParPage)));
            }


            // vérifie si l'utilisateur est minimalement un gestionnaire
            else if (ordre == "departement" && compte.Type >= 2 && compte.Actif)
            {
                ViewData["NomListeBillet"] = "du département";
                ViewData["ordre"]          = "departement";
                ViewData["direction"]      = direction;
                ViewData["sort"]           = sort;
                //Joel Lutumba - 2017-10-03

                /*Impossible d'acceder à l'id du département avec compte.Equipe.DepartementId sans
                 * chercher l'équipe dont fait partie l'utilisateur connecté donc*/
                var equipe = _context.Equipe.SingleOrDefault(e => e.Id == compte.EquipeId);

                // option 1 - cherche les billets en comparant l'id de son déparment et l'id du département de l'équipe de l'utilisateur connecté
                var projetGestionAssistanceContext = _context.Billet.Include(b => b.Auteur).Include(b => b.Departement).Where(b => b.DepartementId == equipe.DepartementId);

                // option 2 - vu que c'est maintenant possible on peut aussi faire
                //var projetGestionAssistanceContext = _context.Billet.Include(b => b.Auteur).Include(b => b.Departement).Where(b => b.DepartementId == compte.Equipe.DepartementId);

                if (direction == "Down")
                {
                    projetGestionAssistanceContext = projetGestionAssistanceContext.OrderByDescending(b => propertyInfo.GetValue(b));
                }
                else
                {
                    projetGestionAssistanceContext = projetGestionAssistanceContext.OrderBy(b => propertyInfo.GetValue(b));
                }

                return(View(await ListePaginee <Billet> .CreateAsync(projetGestionAssistanceContext, page ?? 1, nbElementParPage)));
            }

            // revoie la vue billet avec tous les billets crées
            else if (ordre == "entreprise" && compte.Type >= 3 && compte.Actif)
            {
                ViewData["ordre"]          = "entreprise";
                ViewData["NomListeBillet"] = "de tous les départements";
                ViewData["direction"]      = direction;
                ViewData["sort"]           = sort;
                var projetGestionAssistanceContext = _context.Billet.Include(b => b.Auteur).Include(b => b.Departement).Select(b => b);
                if (direction == "Down")
                {
                    projetGestionAssistanceContext = projetGestionAssistanceContext.OrderByDescending(b => propertyInfo.GetValue(b));
                }
                else
                {
                    projetGestionAssistanceContext = projetGestionAssistanceContext.OrderBy(b => propertyInfo.GetValue(b));
                }
                return(View(await ListePaginee <Billet> .CreateAsync(projetGestionAssistanceContext, page ?? 1, nbElementParPage)));
            }
            //si l'utilisateur n'est qu'un demandeur alors sa vue par defaut sera billets composés sinon ce sera la vue billets assignés
            else
            {
                //Pour l'instant lorsque le paramètre n'est pas définit on renvoie la vue des billets composés
                ViewData["ordre"]     = "compose";
                ViewData["direction"] = direction;
                ViewData["sort"]      = sort;
                var projetGestionAssistanceContext = _context.Billet.Include(b => b.Auteur).Include(b => b.Departement).Where(b => b.AuteurId == HttpContext.Session.GetInt32("_Id"));
                //return View(await projetGestionAssistanceContext.ToListAsync());
                if (direction == "Down")
                {
                    projetGestionAssistanceContext = projetGestionAssistanceContext.OrderByDescending(b => propertyInfo.GetValue(b));
                }
                else
                {
                    projetGestionAssistanceContext = projetGestionAssistanceContext.OrderBy(b => propertyInfo.GetValue(b));
                }
                return(View(await ListePaginee <Billet> .CreateAsync(projetGestionAssistanceContext, page ?? 1, nbElementParPage)));
            }
        }