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")); }
//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))); }
//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))); } }