测试代码均写在这个类里面的,因为是测试嘛,所以表名那些就将就看了。最后写完了再贴上全部代码

类的路径:Rookey.Frame.Operate.Base -> Test -> Class1.cs

1、获取用户信息

        //获取 用户信息
public static string test1()
{
string tempUserName = "admin";
string userpwd = "admin";
string errMsg = "";
UserInfo userInfo = UserOperate.GetUserInfo(tempUserName, userpwd, out errMsg);
return JsonHelper.Serialize(userInfo);
}

2、获取分页数据

 public static string test2()
{
//用户信息
string tempUserName = "admin";
string userpwd = "admin";
string errMsg = "";
var currUser = UserOperate.GetUserInfo(tempUserName, userpwd, out errMsg); //构建request对象
var url = "http://localhost:8088/DataAsync/LoadGridData.html";
var para = "moduleId=d8e80345-71b7-4a3f-8d37-2f0f32e17cc5&tgt=0&gvId=bb9e294c-fcff-4c3c-bcd4-6584a0e5140a&page=1&rows=15";
var request = new HttpRequest("", url, para);
HttpRequestWrapper wrapper = new HttpRequestWrapper(request); //获取 分页参数
var para_grid = GetGridDataParams(wrapper); //获取 分页数据
long total = ;
object list = CommonOperate.GetGridData(para_grid, out total, currUser);
//var result = (list as IEnumerable).Paged(total); return JsonHelper.Serialize(list);
}
        public static GridDataParmas GetGridDataParams(HttpRequestBase request)
{
//模块信息
Sys_Module module = SystemOperate.GetModuleByRequest(request);
if (module == null) return null;
Type modelType = GetModelType(module.TableName);
bool isEnableCache = ModelConfigHelper.IsModelEnableCache(modelType);
string defaultSortField = isEnableCache || ModelConfigHelper.ModelIsViewMode(modelType) ? "CreateDate" : null;
//分页信息
PageInfo pageInfo = PageInfo.GetPageInfo(request, defaultSortField);
List<string> sortNames = pageInfo.sortname.Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries).ToList();
if (sortNames != null && sortNames.Count > )
{
List<string> tempSortNames = new List<string>();
foreach (string sortName in sortNames)
{
if (SystemOperate.IsForeignNameField(module.Id, sortName))
tempSortNames.Add(sortName.Substring(, sortName.Length - ) + "Id");
else
tempSortNames.Add(sortName);
}
pageInfo.sortname = string.Join(",", tempSortNames);
}
//搜索条件
string q = request["q"].ObjToStr().Trim();
if (!string.IsNullOrEmpty(q) && (string.IsNullOrEmpty(pageInfo.sortname) || pageInfo.sortname == "CreateDate"))
{
var searchDic = JsonHelper.Deserialize<Dictionary<string, string>>(q);
if (searchDic != null && searchDic.Count == )
{
if (isEnableCache)
{
pageInfo.sortname = string.Format("CreateDate,len({0})", searchDic.Keys.FirstOrDefault());
pageInfo.sortorder = "desc,asc";
}
else
{
pageInfo.sortname = string.IsNullOrEmpty(pageInfo.sortname) ? string.Format("len({0}),AutoIncrmId", searchDic.Keys.FirstOrDefault()) : string.Format("len({0}),CreateDate", searchDic.Keys.FirstOrDefault());
pageInfo.sortorder = "asc,desc";
}
}
}
//自定义条件
string condition = HttpUtility.UrlDecode(request["condition"].ObjToStr());
//复杂条件集合
string cdItemStr = HttpUtility.UrlDecode(request["cdItems"]).ObjToStr();
List<ConditionItem> cdItems = new List<ConditionItem>();
if (!string.IsNullOrEmpty(cdItemStr))
{
try
{
cdItems = JsonHelper.Deserialize<List<ConditionItem>>(cdItemStr);
}
catch { }
}
//where条件语句,用Base64加密后传输
string whereCon = string.Empty;
try
{
string tempWhere = HttpUtility.UrlDecode(request["where"].ObjToStr());
if (!string.IsNullOrWhiteSpace(tempWhere))
{
whereCon = HttpUtility.UrlDecode(MySecurity.DecodeBase64(tempWhere)).ReplaceSpecialCharOfSQL();
}
}
catch
{ }
//弹出框的原始模块
string initModule = HttpUtility.UrlDecode(request["initModule"].ObjToStr());
//弹出框的原始字段
string initField = request["initField"].ObjToStr();
//弹出框的依赖字段值
string relyFieldsValue = HttpUtility.UrlDecode(request["p_relyValues"]);
//自动完成字段名
string fieldName = request["fieldName"].ObjToStr(); //字段名
//组装参数对象
GridDataParmas gridParams = null;
pageInfo.request = request;
if (!string.IsNullOrWhiteSpace(initModule) && !string.IsNullOrWhiteSpace(initField)) //弹出框网格数据参数
{
gridParams = new DialogGridDataParams(module.Id, initModule, initField, pageInfo, q, condition, relyFieldsValue, cdItems, whereCon);
}
else if (!string.IsNullOrWhiteSpace(fieldName)) //自动完成数据参数
{
gridParams = new AutoCompelteDataParams(module.Id, fieldName, pageInfo, q, condition, cdItems, whereCon);
}
else
{
gridParams = new GridDataParmas(module.Id, pageInfo, q, condition, cdItems, whereCon);
}
try
{
string gt = request["tgt"].ObjToStr();
gridParams.GridType = (DataGridType)Enum.Parse(typeof(DataGridType), gt);
gridParams.PagingInfo.gridTypeParam = gridParams.GridType;
if (gridParams.IsEditGridPageing)
{
if (gridParams.GridType == DataGridType.EditDetailGrid && gridParams.PagingInfo != null && gridParams.PagingInfo.pagesize > )
gridParams.PagingInfo.pagesize = ; //编辑网格最多支持100条记录
}
else if (gridParams.GridType == DataGridType.EditDetailGrid)
{
gridParams.PagingInfo.pagesize = ;
}
}
catch { }
//其他参数
if (request.Params.AllKeys.Where(x => x.StartsWith("p_")).Count() > )
{
gridParams.OtherParams = new Dictionary<string, string>();
List<string> keys = request.Params.AllKeys.Where(x => x.StartsWith("p_")).ToList();
foreach (string key in keys)
{
gridParams.OtherParams.Add(key, request.Params[key]);
}
}
if (request["node"].ObjToStr() != string.Empty)
{
if (gridParams.OtherParams == null)
gridParams.OtherParams = new Dictionary<string, string>();
gridParams.OtherParams.Add("node", HttpUtility.UrlDecode(request["node"].ObjToStr()));
}
//行过滤规则解析
string filterRules = request["filterRules"].ObjToStr();
if (!string.IsNullOrEmpty(filterRules))
{
try
{
List<GridFilterRule> gridFilters = JsonHelper.Deserialize<List<GridFilterRule>>(filterRules);
List<ConditionItem> ruleItems = new List<ConditionItem>();
foreach (GridFilterRule rule in gridFilters)
{
QueryMethod method = QueryMethod.Equal;
string field = rule.field;
if (rule.op == FilterOpEnum.isnull || rule.op == FilterOpEnum.isnotnull)
{
method = rule.op == FilterOpEnum.isnull ? QueryMethod.Equal : QueryMethod.NotEqual;
}
else
{
method = (QueryMethod)Enum.Parse(typeof(QueryMethod), ((int)rule.op).ToString());
}
object value = rule.value;
if (rule.op == FilterOpEnum.isnull || rule.op == FilterOpEnum.isnotnull)
{
value = null;
}
if (!CommonDefine.BaseEntityFields.Contains(field))
{
if (SystemOperate.IsForeignNameField(module.Id, field))
field = field.Substring(, field.Length - ) + "Id";
}
ruleItems.Add(new ConditionItem() { Field = field, Method = method, Value = value });
}
gridParams.FilterRules = ruleItems;
}
catch { }
}
gridParams.ViewId = request["viewId"].ObjToGuidNull(); //综合视图Id
gridParams.GridViewId = request["gvId"].ObjToGuidNull(); //当前加载视图ID
gridParams.IsComprehensiveDetailView = request["dv"].ObjToInt() == ; //综合明细视图
gridParams.IsDetailCopy = request["copy"].ObjToInt() == ; //是否明细复制
gridParams.IsTreeGrid = request["tg"].ObjToInt() == ; //是否为树型网格
gridParams.IsPermissionFilter = request["nfp"].ObjToInt() != ; //是否过滤权限
gridParams.IsRestartFlow = request["rsf"].ObjToInt() == ; //是否为重新发起流程
//调用自定义设置参数方法
ExecuteCustomeOperateHandleMethod(module.Id, "GridLoadDataParamsSet", new object[] { module, gridParams, null });
return gridParams;
}
public static Type GetModelType(string tableName)
{
return BridgeObject.GetModelType(tableName);
}
public static Type GetModelType(Guid moduleId)
{
string tableName = SystemOperate.GetModuleTableNameById(moduleId);
return BridgeObject.GetModelType(tableName);
}
public static object ExecuteCustomeOperateHandleMethod(Guid moduleId, string methodName, object[] args)
{
try
{
Type tempType = typeof(OperateHandleFactory<>);
Type modelType = GetModelType(moduleId);
Type relectType = tempType.MakeGenericType(new Type[] { modelType });
//实例化对象
object obj = Activator.CreateInstance(relectType);
MethodInfo method = relectType.GetMethod(methodName, BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public);
if (method == null) return null;
//反射执行方法
FastInvoke.FastInvokeHandler fastInvoker = FastInvoke.GetMethodInvoker(method);
object executedObj = fastInvoker(obj, args);
return executedObj;
}
catch { }
return null;
}

3、创建 Model

        public static string test3()
{
//这个类有一些要求,比如:需要用特性 ModuleConfig 来描述这个类
string errMsg = ToolOperate.RepairTables(new List<string> { "Class1" });
return "测试:" + errMsg;
}

最新文章

  1. Chrome开发者工具之JavaScript内存分析
  2. Python的平凡之路(4)
  3. Hadoop Pipes Exception: Illegal text protocol command
  4. TYVJ P1023 奶牛的锻炼 Label:dp
  5. mysql多实例安装脚本
  6. jquery1.9学习笔记 之选择器(基本元素三)
  7. hibernate分页查询的各种方法
  8. [WPF疑难]避免窗口最大化时遮盖任务栏
  9. DOM4j 操作XML
  10. heritrix1.14.4配置-没有add和change按钮的问题
  11. node.js零基础详细教程(7.5):mongo可视化工具webstorm插件、nodejs自动重启模块Node Supervisor(修改nodejs后不用再手动命令行启动服务了)
  12. 在学习泛型时遇到的困惑经常与func&lt;T,U&gt;混淆
  13. jQuery常用工具方法
  14. oracle数据库热备中的备份和恢复及例子
  15. golang:一个高性能低精度timer实现
  16. JAVA变成把一个整数分解成多个质数的积
  17. java.lang.IllegalArgumentException: Minimum column number is 0
  18. Hadoop分布式集群部署(单namenode节点)
  19. vue-router参数传递
  20. 博世传感器调试笔记(一)----加速度传感器BMA253

热门文章

  1. 常用 Git 命令汇总
  2. Docker 多终端登录
  3. Guava入门
  4. 44、css实现水波纹效果
  5. 通过nginx部署前端代码实现前后端分离
  6. Sping注解开发
  7. echart添加轴最小值,最大值,间隔以及设置线条颜色
  8. PostgreSQL 基本数据类型及常用SQL 函数操作
  9. FFMPEG 命令行工具- ffplay
  10. sudo的使用