private IQueryable <UserDto> GetUser(UserSearchModel searchModel = null)
        {
            IQueryable <UserDto> list = null;

            int?userIdOnline = Session[SessionVariables.UserDetails].GetUserIdFromSession();

            if ((searchModel.IsNull() || (!searchModel.HasAnyValue())))
            {
                list = _userService.GetAll().Where(u => u.UserID != userIdOnline);
            }
            else
            {
                var predicate      = PredicateBuilder.True <UserDto>();
                var hasOtherFilter = false;

                if (!searchModel.UserName.IsNull())
                {
                    hasOtherFilter = true;
                    predicate      = predicate.And(a => a.UserName.Contains(searchModel.UserName) && a.UserID != userIdOnline);
                }

                if (!searchModel.UserTypeId.IsNull())
                {
                    hasOtherFilter = true;
                    predicate      = predicate.And(a => a.UserTypeID == searchModel.UserTypeId && a.UserID != userIdOnline);
                }

                if (!searchModel.isActive.IsNull())
                {
                    hasOtherFilter = true;
                    if (searchModel.isActive == "true")
                    {
                        predicate = predicate.And(a => a.IsActive && a.UserID != userIdOnline);
                    }
                    else
                    {
                        predicate = predicate.And(a => !a.IsActive && a.UserID != userIdOnline);
                    }
                }

                if (!searchModel.BranchId.IsNull())
                {
                    hasOtherFilter = true;
                    predicate      = predicate.And(a => a.BranchId == searchModel.BranchId && a.UserID != userIdOnline);
                }



                list = _userService.GetAll().AsExpandable().Where(predicate);
            }

            return(list);
        }