public ActionResult Index()
        {
            #region Sauvegarde de la pageSize courant
            // Selection pageSize (ne sera utilisé que dans la declaration du webgrid)
            if (Request.Params["PageSize"] != null)
            {
                SessionManager.Set<int>(UserBL.SelectedPageSizeSessionKey, Convert.ToInt32(Request.Params["PageSize"]));
            }
            #endregion
            Guid idClient = Guid.Empty;            
            int idCompte = 0;
            ag_upsideo_compte compte = null;            
            AgregMouvementViewModel model = new AgregMouvementViewModel();
            
            List<ag_upsideo_mouvement> listemouvement = new List<ag_upsideo_mouvement>();
            try
            {
                SessionManager.Get<Guid>(agupsideocompteBL.AgregClientIdSessionKey, out idClient);
                if (idClient == Guid.Empty)
                {
                    throw new Exception("Il faut passer par le client pour manipuler le mouvement d'un compte.");
                }
                SessionManager.Get<int>(agupsideocompteBL.AgregCompteIdSessionKey, out idCompte);
                if (idCompte == 0)
                {
                    throw new Exception("Session compte épuisée..");
                }                
                

                using (UpsilabEntities db = new UpsilabEntities())
                {
                    db.CommandTimeout = 180;
                    compte = db.ag_upsideo_compte.Include("ag_upsideo_client").Where(c => c.Idfrontcompte == idCompte && c.idclient == idClient && c.deleted == "n").FirstOrDefault();
                    listemouvement = db.ag_upsideo_mouvement.Where(m => m.Idfrontcompte == idCompte && m.deleted == "n").OrderByDescending(o=>o.datemvt).ToList();

                    model.AgregClient = compte.ag_upsideo_client;
                    model.AgregCompte = compte;
                    model.AgregMouvement = listemouvement;
                }
                
            }
            catch (Exception ex)
            {
                Upsilab.Business.Log.Log.AppendException(ex);
            }
            
            return View(model);
        }      
        public ActionResult Index(string id)
        {
            Guid idClient = Guid.Empty;
            SessionManager.Get<Guid>(agupsideocompteBL.AgregClientIdSessionKey, out idClient);
            int idCompte = 0;
            ag_upsideo_compte compte = null;            
            AgregMouvementViewModel model = new AgregMouvementViewModel();

            if (!string.IsNullOrEmpty(id) && idClient != Guid.Empty)
            {
                idCompte = Convert.ToInt32(id);

                var correctcompte = agupsideocompteBL.IsClientCompte(idClient, idCompte);
                if (!correctcompte)
                {
                    var LanguageData = PageLanguageHelper.GetLanguageContent("User", "agregcompte");
                    throw new Exception(LanguageData.GetContent("incorrect_compte"));
                }
                //using (UpsilabEntities db = new UpsilabEntities())
                //{
                //    compte = db.ag_upsideo_compte.Where(c => c.Idfrontcompte == idCompte && c.idclient == idClient && c.deleted == "n").FirstOrDefault();
                //}
                //if (compte == null)
                //{
                //    var LanguageData = PageLanguageHelper.GetLanguageContent("User", "agregcompte");
                //    throw new Exception(LanguageData.GetContent("incorrect_compte"));
                //}
            }
            else if (idClient == Guid.Empty)
            {

                var LanguageData = PageLanguageHelper.GetLanguageContent("User", "agregcompte");
                throw new Exception(LanguageData.GetContent("incorrect_mvt"));
                //throw new Exception("Il faut passer par le client pour manipuler le mouvement d'un compte.");
            }
            
            List<ag_upsideo_mouvement> listemouvement = new List<ag_upsideo_mouvement>();
            try
            {
                if (!string.IsNullOrEmpty(id))
                {
                    SessionManager.Set<int>(agupsideocompteBL.AgregCompteIdSessionKey, idCompte);
                }
                else
                {
                    SessionManager.Get<int>(agupsideocompteBL.AgregCompteIdSessionKey, out idCompte);
                }

                using (UpsilabEntities db = new UpsilabEntities())
                {
                    db.CommandTimeout = 180;
                    compte = db.ag_upsideo_compte.Include("ag_upsideo_client").Where(c => c.Idfrontcompte == idCompte && c.idclient == idClient && c.deleted == "n").FirstOrDefault();
                    listemouvement = db.ag_upsideo_mouvement.Where(m => m.Idfrontcompte == idCompte && m.deleted == "n").OrderByDescending(o=>o.datemvt).ToList();

                    model.AgregClient = compte.ag_upsideo_client;
                    model.AgregCompte = compte;
                    model.AgregMouvement = listemouvement;
                }
                
            }
            catch (Exception ex)
            {
                Upsilab.Business.Log.Log.AppendException(ex);
            }
            
            return View(model);
        }