| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- using AppliWebANA.Models;
- using DAL;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Web;
- using System.Web.Caching;
- using System.Web.Mvc;
- namespace AppliWebANA.Controllers {
- [Authorize]
- public class AnnuaireController : Controller {
- private AnnuaireEntities _DC = null;
- private AnnuaireEntities DC {
- get {
- if( _DC == null ) {
- _DC = new AnnuaireEntities();
- _DC.Configuration.LazyLoadingEnabled = false;
- }
- return _DC;
- }
- }
- public ActionResult Index() {
- ViewBag.Titres = Utilitaires.Titres;
- return View();
- }
- public ActionResult Rechercher( Personne filtre, short? titreId ) {
- string clé = Request.Url.Query.Replace( " ", string.Empty ).ToUpper();
- var resultats = (IEnumerable<Personne>)HttpContext.Cache[clé];
- if( resultats == null ) {
- IQueryable<Personne> requete = DC.Personnes.AsNoTracking();
- if( titreId.HasValue )
- requete = requete.Where( p => p.TitreId == titreId.Value );
- if( !string.IsNullOrWhiteSpace( filtre.Nom ) ) {
- filtre.Nom = filtre.Nom.Trim();
- requete = requete.Where( p => p.Nom.Contains( filtre.Nom ) );
- }
- if( !string.IsNullOrWhiteSpace( filtre.Prenom ) ) {
- filtre.Prenom = filtre.Prenom.Trim();
- requete = requete.Where( p => p.Prenom.Contains( filtre.Prenom ) );
- }
- if( !string.IsNullOrWhiteSpace( filtre.Telephone ) ) {
- filtre.Telephone = filtre.Telephone.Trim();
- requete = requete.Where( p => p.Telephone.Contains( filtre.Telephone ) );
- }
- resultats = requete.ToList();
- HttpContext.Cache.Add( clé, resultats, null, DateTime.Now.AddMinutes( 10 ), Cache.NoSlidingExpiration, CacheItemPriority.Default, null );
- ViewBag.Message = "Requête exécutée";
- }
- else
- ViewBag.Message = "Données en cache";
- ViewBag.personnes = resultats;
- ViewBag.Titres = Utilitaires.Titres;
- return View( "Index" );
- }
- public PartialViewResult Edition( Guid id ) {
- if( Request.Form.AllKeys.Contains( "Edit" ) ) { // Bt pour passer une ligne en mode édition
- var personne = DC.Personnes.First( p => p.Id == id );
- ViewBag.Titres = Utilitaires.Titres.Values;
- return PartialView( "LigneEnEdition", personne );
- }
- else if( Request.Form.AllKeys.Contains( "Cancel" ) ) {
- var personne = DC.Personnes.First( p => p.Id == id );
- ViewBag.Titres = Utilitaires.Titres;
- return PartialView( "LigneEnLecture", personne );
- }
- else if( Request.Form.AllKeys.Contains( "Update" ) ) {
- Personne maj = new Personne();
- if( TryUpdateModel( maj ) ) {
- DC.Entry( maj ).State = System.Data.Entity.EntityState.Modified;
- DC.SaveChanges();
- ViewBag.Titres = Utilitaires.Titres;
- return PartialView( "LigneEnLecture", maj );
- }
- else {
- ViewBag.Titres = Utilitaires.Titres.Values;
- return PartialView( "LigneEnEdition", maj );
- }
- }
- throw new ArgumentException( "Hein ? Kéchécha ?" );
- }
- protected override void Dispose( bool disposing ) {
- if( _DC != null ) {
- _DC.Dispose();
- }
- base.Dispose( disposing );
- }
- }
- }
|