public ActionResult _AjaxUserResultList(GridCommand command, IssueTypeToUserDetailSearchModel searchModel, string id)
 {
     command.PageSize = int.MaxValue;
     ViewBag.Code = id;
     SearchStatementModel searchStatementModel = this.UserPrepareSearchStatement(command, searchModel, id);
     return PartialView(GetAjaxPageData<User>(searchStatementModel, command));
 }
        private SearchStatementModel UserPrepareSearchStatement(GridCommand command, IssueTypeToUserDetailSearchModel searchModel, string id)
        {
            string whereStatement = " where u.Id not in (select ittudu.Id from IssueTypeToUserDetail ittud join ittud.User ittudu  where ittud.IssueTypeTo = '" + id + "') ";

            IList<object> param = new List<object>();

            HqlStatementHelper.AddLikeStatement("Code", searchModel.UserCode, HqlStatementHelper.LikeMatchMode.Start, "u", ref whereStatement, param);
            HqlStatementHelper.AddLikeStatement("Email", searchModel.Email, HqlStatementHelper.LikeMatchMode.Start, "u", ref whereStatement, param);
            HqlStatementHelper.AddLikeStatement("MobilePhone", searchModel.MobilePhone, HqlStatementHelper.LikeMatchMode.Start, "u", ref whereStatement, param);
            if (searchModel.HasEmail)
            {
                whereStatement += " and u.Email is not null and u.Email !='' ";
            }
            if (searchModel.HasMobilePhone)
            {
                whereStatement += " and u.MobilePhone is not null and u.MobilePhone !='' ";
            }

            string sortingStatement = HqlStatementHelper.GetSortingStatement(command.SortDescriptors);

            SearchStatementModel searchStatementModel = new SearchStatementModel();
            searchStatementModel.SelectCountStatement = selectUserCountStatement;
            searchStatementModel.SelectStatement = selectUserStatement;
            searchStatementModel.WhereStatement = whereStatement;
            searchStatementModel.SortingStatement = sortingStatement;
            searchStatementModel.Parameters = param.ToArray<object>();

            return searchStatementModel;
        }
 public ActionResult ChooseUser(GridCommand command, IssueTypeToUserDetailSearchModel searchModel, string code)
 {
     command.PageSize = int.MaxValue;
     ViewBag.Code = code;
     SearchCacheModel searchCacheModel = ProcessSearchModel(command, searchModel);
     SearchStatementModel searchStatementModel = this.UserPrepareSearchStatement(command, (IssueTypeToUserDetailSearchModel)searchCacheModel.SearchObject, code);
     return this.View(GetPageData<User>(searchStatementModel, command));
 }