public ActionResult Advisers(UsersModel postedModel)
        {
            UsersModel usersModel = new UsersModel();

            try
            {
                //Posted values
                if (postedModel.IdSelectedFirmInstitutionParent != Guid.Empty)
                {
                    SessionManager.Set<Guid>(UserBL.SelectedFirmParentIdSessionKey, postedModel.IdSelectedFirmInstitutionParent);
                }

                if (postedModel.IdSelectedFirmInstitutionChild != Guid.Empty)
                {
                    SessionManager.Set<Guid>(UserBL.SelectedFirmChildIdSessionKey, postedModel.IdSelectedFirmInstitutionChild);
                }

                if (Request.Params["PageSize"] != null)
                {
                    //SessionManager.Set<int>(PAGE_SIZE_SESSION_KEY, Convert.ToInt32(Request.Params["PageSize"]));
                    SessionManager.Set<int>(UserBL.SelectedPageSizeSessionKey, Convert.ToInt32(Request.Params["PageSize"]));
                }

                usersModel = GetUsersModel();
            }
            catch (Exception ex)
            {
                Upsilab.Business.Log.Log.AppendException(ex);
            }

            return View(usersModel);
        }
        private UsersModel GetUsersModel(string id = null)
        {
            var languageData = PageLanguageHelper.GetLanguageContent("User", "User");
            UsersModel usersModel = new UsersModel();

            //FirmInstitutions parent
            usersModel.FirmInstitutionParents = FirmInstitutionBL.GetFirmInstitutionParents();

            Guid idFirmInstitutionParent = Guid.Empty;

            //IdFirmParent from dashboard
            if (!string.IsNullOrEmpty(id))
            {
                Guid.TryParse(id, out idFirmInstitutionParent);
                if (idFirmInstitutionParent != Guid.Empty)
                {
                    SessionManager.Set<Guid>(UserBL.SelectedFirmParentIdSessionKey, idFirmInstitutionParent);
                }
            }

            //IdFirmParent from session
            if (idFirmInstitutionParent == Guid.Empty)
            {
                SessionManager.Get<Guid>(UserBL.SelectedFirmParentIdSessionKey, out idFirmInstitutionParent);
            }

            if (idFirmInstitutionParent == Guid.Empty)
            {
                idFirmInstitutionParent = usersModel.FirmInstitutionParents.FirstOrDefault().idFirmInstitution;
            }

            usersModel.IdSelectedFirmInstitutionParent = idFirmInstitutionParent;

            //FirmInstitions fils
            usersModel.FirmInstitutionChildren = FirmInstitutionBL.GetFirmInstitutionByIdFirmInstitutionParent(usersModel.IdSelectedFirmInstitutionParent);
            usersModel.FirmInstitutionChildren.Insert(0, new Data.Model.FirmInstitution() { idFirmInstitution = GuidHelper.EmptyGuid(), FirmInstitutionName = languageData.GetContent("user_all_firminstitutions") });

            Guid idFirmInstitutionChild = Guid.Empty;
            SessionManager.Get<Guid>(UserBL.SelectedFirmChildIdSessionKey, out idFirmInstitutionChild);

            if (idFirmInstitutionChild == Guid.Empty)
            {
                idFirmInstitutionChild = GuidHelper.EmptyGuid(); //:)
            }

            usersModel.IdSelectedFirmInstitutionChild = idFirmInstitutionChild;

            //Advisers
            Guid tempIdFirmChild = (usersModel.IdSelectedFirmInstitutionChild == GuidHelper.EmptyGuid()) ? Guid.Empty : usersModel.IdSelectedFirmInstitutionChild;
            usersModel.UserAdvisers = FirmInstitutionAdviserBL.GetAdvisersByIdFirms(usersModel.IdSelectedFirmInstitutionParent, tempIdFirmChild);

            //Credits ?
            //Get once all creditoperationLogs for selected firms
            List<Guid> idSelectedFirmInstitutions = new List<Guid>(); //Parent and child
                      
            if (usersModel.IdSelectedFirmInstitutionChild != GuidHelper.EmptyGuid())
            {
                idSelectedFirmInstitutions.Add(usersModel.IdSelectedFirmInstitutionChild); //Add child Id
            }
            else
            {
                idSelectedFirmInstitutions.Add(usersModel.IdSelectedFirmInstitutionParent); //Add Parent Id

                var tempIdChildren = usersModel.FirmInstitutionChildren.Select(f => f.idFirmInstitution);
                idSelectedFirmInstitutions =  idSelectedFirmInstitutions.Concat(tempIdChildren).ToList(); //List of children
            }
                     
            List<CreditOperationLog> creditOperationLogs = CreditOperationBL.GetCreditOperationLogByIdFirminstitutions(idSelectedFirmInstitutions);

            //Sum credit
            usersModel.ConsumedCredit = CreditOperationBL.SumCredits(creditOperationLogs);

            usersModel.UserAdvisers = SetCreditCost(usersModel.UserAdvisers, creditOperationLogs);

            //Page size
            usersModel.PageSize = GetPageSize();

            return usersModel;
        
        }
        public ActionResult Advisers(string id = null)
        {
            UsersModel usersModel = new UsersModel();

            try
            {
                usersModel = GetUsersModel(id);                
            }
            catch (Exception ex)
            {
                Upsilab.Business.Log.Log.AppendException(ex);
            }

            return View(usersModel);
        }