public ActionResult Index(string id)
        {
            Guid idClient = Guid.Empty;
            SessionManager.Get<Guid>(agupsideocompteBL.AgregClientIdSessionKey, out idClient);
            int idCompte = 0;
            ag_upsideo_compte compte = null;            
            AgregOperationViewModel model = new AgregOperationViewModel();
            //clear session idop
            SessionManager.Clear(agupsideocompteBL.AgregOperationIdSessionKey);
            //
           
            Guid idAgregCGP = Guid.Empty;
            User currentUser = SessionManager.GetUserSession();
            if (currentUser.IsEndUser())
            {
                CustomerProspect currentCustomer = SessionManager.GetCustomerProspectSession();
                User currenttUserCreated = currentCustomer.User1;
                idAgregCGP = currenttUserCreated.idAgregCGP.Value;
            }
            else
            {
                idAgregCGP = currentUser.idAgregCGP.Value;
            }
            using (UpsilabEntities db = new UpsilabEntities())
            {
                if (!string.IsNullOrEmpty(id) && idClient != Guid.Empty)
                {
                    idCompte = Convert.ToInt32(id);
                }               
                else if (idClient == Guid.Empty)
                {
                    var LanguageData = PageLanguageHelper.GetLanguageContent("User", "agregcompte");
                    throw new Exception(LanguageData.GetContent("incorrect_operation"));
                    //throw new Exception("Il faut passer par le client pour manipuler le operation d'un compte.");
                }
                else
                {
                    SessionManager.Get<int>(agupsideocompteBL.AgregCompteIdSessionKey, out idCompte);
                }

                compte = db.ag_upsideo_compte.Include("ag_upsideo_client").FirstOrDefault(c => c.Idfrontcompte == idCompte && c.idclient == idClient && c.deleted == "n");

                if (compte == null)
                {
                    var LanguageData = PageLanguageHelper.GetLanguageContent("User", "agregcompte");
                    throw new Exception(LanguageData.GetContent("incorrect_compte"));
                    //throw new Exception("Ce compte n'est pas un compte du client en cours.");
                }

                SessionManager.Set<int>(agupsideocompteBL.AgregCompteIdSessionKey, idCompte);
                List<ag_upsideo_operation> listeoperation = new List<ag_upsideo_operation>();
                List<ag_upsideo_support> listesupport = new List<ag_upsideo_support>();
                try
                { 
                    db.CommandTimeout = 180;              
                    listeoperation = db.ag_upsideo_operation.Where(m => m.Idfrontcompte == idCompte && m.deleted == "n").OrderByDescending(o=>o.dateope).ToList();
                    model.AgregClient = compte.ag_upsideo_client;
                    model.AgregCompte = compte;
                    model.AgregOperation = listeoperation;
                    listesupport = (from support in db.ag_upsideo_support                                   
                                   join cgp in db.ag_upsideo_cgp on support.idcrmcabinet equals cgp.idcrmcabinet
                                   where cgp.idcgp == idAgregCGP
                                   select support).OrderBy(s=>s.codeisin).ToList();
                    model.AgregSupport = listesupport;
                    SessionManager.Set<List<ag_upsideo_support>>(agupsideocompteBL.AgregListeSupportIdSessionKey, listesupport);
                }
                catch (Exception ex)
                {
                    Upsilab.Business.Log.Log.AppendException(ex);
                }
            }
            return View(model);
        }
        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;
            SessionManager.Get<Guid>(agupsideocompteBL.AgregClientIdSessionKey, out idClient);
            if (idClient == Guid.Empty)
            {
                throw new Exception("Il faut passer par le client pour manipuler le operation d'un compte.");
            }
            int idCompte = 0;
            SessionManager.Get<int>(agupsideocompteBL.AgregCompteIdSessionKey, out idCompte);
            if (idCompte == 0)
            {
                throw new Exception("Ce compte n'est pas un compte du client en cours.");
            }
            ag_upsideo_compte compte = null;
            AgregOperationViewModel model = new AgregOperationViewModel();
            //clear session idop
            SessionManager.Clear(agupsideocompteBL.AgregOperationIdSessionKey);
            //
            
            Guid idAgregCGP = Guid.Empty;
            User currentUser = SessionManager.GetUserSession();
            if (currentUser.IsEndUser())
            {
                CustomerProspect currentCustomer = SessionManager.GetCustomerProspectSession();
                User currenttUserCreated = currentCustomer.User1;
                idAgregCGP = currenttUserCreated.idAgregCGP.Value;
            }
            else
            {
                idAgregCGP = currentUser.idAgregCGP.Value;
            }
            using (UpsilabEntities db = new UpsilabEntities())
            {               

                List<ag_upsideo_operation> listeoperation = new List<ag_upsideo_operation>();
                List<ag_upsideo_support> listesupport = new List<ag_upsideo_support>();
                try
                {
                    db.CommandTimeout = 180;
                    compte = db.ag_upsideo_compte.Include("ag_upsideo_client").Where(c => c.Idfrontcompte == idCompte && c.idclient == idClient && c.deleted == "n").FirstOrDefault();
                    listeoperation = db.ag_upsideo_operation.Where(m => m.Idfrontcompte == idCompte && m.deleted == "n").OrderByDescending(o => o.dateope).ToList();
                    model.AgregClient = compte.ag_upsideo_client;
                    model.AgregCompte = compte;
                    model.AgregOperation = listeoperation;
                    listesupport = (from support in db.ag_upsideo_support
                                    join cgp in db.ag_upsideo_cgp on support.idcrmcabinet equals cgp.idcrmcabinet
                                    where cgp.idcgp == idAgregCGP
                                    select support).OrderBy(s => s.codeisin).ToList();
                    model.AgregSupport = listesupport;
                    SessionManager.Set<List<ag_upsideo_support>>(agupsideocompteBL.AgregListeSupportIdSessionKey, listesupport);
                }
                catch (Exception ex)
                {
                    Upsilab.Business.Log.Log.AppendException(ex);
                }
            }
            return View(model);
        }