using APT.BaseData.Domain.ApiModel; using APT.BaseData.Domain.Entities; using APT.BaseData.Domain.Enums; using APT.BaseData.Domain.IServices; using APT.BaseData.Domain.Msg; using APT.Infrastructure.Core; using APT.BaseData.Domain.ApiModel.FM; using APT.BaseData.Domain.Entities.FM; using APT.Utility; using Microsoft.AspNetCore.Mvc; using System; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; using System.Diagnostics; using APT.Utility; using NPOI.SS.Formula.Functions; using System.Threading.Tasks; using APT.BaseData.Domain.ApiModel.Platform; using APT.Infrastructure.Api.Redis; using System.Configuration; using APT.Infrastructure.Api; namespace APT.PF.WebApiControllers.Api.PF { [Route("api/PF/PageTable")] [APT.Infrastructure.Api.RootOrg] public class PageTableController : AuthorizeTreeApiController { /// /// 查询 /// /// /// [HttpPost, Route("Entities")] public JsonActionResult> Entities([FromBody] KeywordFilter filter) { return WitEntities(null, filter); } /// /// 查询 /// /// /// [HttpPost, Route("Paged")] public PagedActionResult Paged([FromBody] KeywordPageFilter pageFilter) { return WitPaged(null, pageFilter); } /// /// 查询 /// /// /// [HttpPost, Route("OrderPaged")] public PagedActionResult OrderPaged([FromBody] KeywordPageFilter pageFilter) { return WitOrderPaged(null, pageFilter); } [HttpPost, Route("Update")] public JsonActionResult Update([FromBody] T_PF_PAGE_TABLE entity) { return SafeExecute(() => { var dataBaseObj = this.GetEntity(i => i.ID == entity.ID); if (dataBaseObj == null) { var editColumns = new List(); if (!string.IsNullOrEmpty(entity.DATA_TABLE)) { //增加配置字段 var fileds = DataHelper.EntityFieldList(entity.DATA_TABLE); foreach (var filed in fileds) { var editColum = new T_PF_COLUMN(); editColum.ORG_ID = entity.ORG_ID; editColum.IS_DEFAULT = filed.IsDefault; editColum.FIELD_NAME = filed.FileName; editColum.PAGE_TABLE_ID = entity.ID; editColum.LABEL = filed.Description; editColum.ENUM = filed.EnumName; editColum.ID = Guid.NewGuid(); editColum.TABLE_NAME = entity.TABLE_NAME; editColum.PAGE_TABLE_ID = entity.ID; editColumns.Add(editColum); } } UnifiedCommit(() => { this.AddEntityNoCommit(entity); if (editColumns.Count > 0) { this.BantchAddEntityNoCommit(editColumns); } }); } else { this.UpdateEntity(entity); } var formService = APT.Infrastructure.Api.ServiceLocator.Instance.GetService(); formService.CreateFormConfigVersion(PFFormConfigVersionEnum.PageTable, entity.ID.ToString()); return true; }); } /// /// 删除 /// /// /// [HttpGet, Route("Delete")] public JsonActionResult Delete(string id) { return SafeExecute(() => { var formService = APT.Infrastructure.Api.ServiceLocator.Instance.GetService(); formService.CreateFormConfigVersion(PFFormConfigVersionEnum.PageTable, id); List ids = new List(); ids.Add(new Guid(id)); this.DoDelete(ids); return true; }); } [HttpPost, Route("TreeData")] public JsonActionResult>> TreeData([FromBody] KeywordFilter filter) { return WitTreeOrderEntities(null, filter); } private void DoDelete(List ids) { this.DeleteEntity(t => ids.Contains(t.PAGE_TABLE_ID ?? Guid.Empty)); this.DeleteEntity(t => ids.Contains(t.PAGE_TABLE_ID)); this.DeleteEntity(t => ids.Contains(t.Nav_HiddenTable.PAGE_TABLE_ID)); this.DeleteEntity(t => ids.Contains(t.PAGE_TABLE_ID)); this.DeleteEntity(t => ids.Contains(t.Nav_UserCCTable.PAGE_TABLE_ID)); this.DeleteEntity(t => ids.Contains(t.PAGE_TABLE_ID)); this.DeleteEntity(t => ids.Contains(t.ID)); } /// /// 批量删除 /// /// /// [HttpGet, Route("BatchDelete")] public JsonActionResult BatchDelete(string ids) { return SafeExecute(() => { var formService = APT.Infrastructure.Api.ServiceLocator.Instance.GetService(); formService.CreateFormConfigVersion(PFFormConfigVersionEnum.PageTable, ids); var arrays = string.IsNullOrEmpty(ids) ? null : ids.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries) .Select(t => new Guid(t)).ToList(); if (arrays != null && arrays.Count > 0) this.DoDelete(arrays); return true; }); } /// /// 根据ID获得实体数据 /// /// /// [HttpPost, Route("Get")] public JsonActionResult Get([FromBody] KeywordFilter filter) { return WitEntity(null, filter); } /// /// 所有表 /// /// /// [HttpPost, Route("GetTablePageConfigInfo")] public JsonActionResult GetTablePageConfigInfo([FromBody] KeywordFilter filter) { return SafeExecute(() => { string userId = filter.Parameter1; filter.OrgType = FilterOrgTypeEnum.仅本组织; var id = ""; var idRules = filter.FilterGroup.Rules.FirstOrDefault(i => i.Field == "ID"); if (idRules != null) { id = idRules.Value.ToString(); } var redisCode = string.Format(RedisCacheKey.PageTableRedisKey, id, filter.GetOrgId()); bool isRedisConfig = true; var redisConfig = APT.Infrastructure.Api.ConfigurationManager.AppSettings["RedisFormConfig"]; if (!string.IsNullOrEmpty(redisConfig)) isRedisConfig = bool.Parse(redisConfig); if (isRedisConfig) { if (CsRedisManager.KeyExists(redisCode)) return CsRedisManager.StringGet(redisCode); } var page = this.GetEntity(id); if (page == null) this.ThrowError("020015"); //var page = pages.FirstOrDefault(i => i.ID == new Guid(id)); var tableModel = new TableModel(); //列 var baseFiler = new BaseFilter(); baseFiler.OrgId = filter.OrgId; baseFiler.Sort = "NUM"; baseFiler.Order = DbOrder.ASC; baseFiler.OrgType = FilterOrgTypeEnum.仅本组织; var colums = this.GetOrderEntities(i => i.PAGE_TABLE_ID == page.ID, baseFiler, "Nav_Filters").ToList(); //var colums = this.GetEntitiesByRedis(null, baseFiler, // page.ID.ToString()).ToList(); ////var colums = this.GetEntities(i=>i.PAGE_TABLE_ID==page.ID, baseFiler).ToList(); ////var columsList = this.GetEntitiesByRedis(filter.GetOrgId()); ////var colums = columsList.Where(i => i.PAGE_TABLE_ID == page.ID).ToList(); ////var filters = this.GetEntitiesByRedis(filter.GetOrgId()); //foreach (var c in colums) //{ // c.Nav_Filters = this.GetEntitiesByRedis(null, new BaseFilter(filter.GetOrgId()), c.ID.ToString()); //} //子表 //Expression> expression = t => t.PARENT_ID == page.ID; //var hasChild = this.GetCount(expression, new BaseFilter()); //filter //Expression> paramsExpress = t => t.PAGE_TABLE_ID == page.ID; //var param = this.GetEntities(paramsExpress, new BaseFilter()).ToList(); // var paramss = this.GetEntitiesByRedis(i => i.ORG_ID == filter.GetOrgId(), new BaseFilter(filter.GetOrgId()), page.ID.ToString()); var param = paramss.ToList(); //var btns = this.GetOrderEntities(t => t.PAGE_TABLE_ID == page.ID && t.BTN_FUN_TYPE == (int)PFBtnFuncTypeEnum.按钮, baseFiler).ToList(); // var btnList = this.GetEntitiesByRedis(null, new BaseFilter(filter.OrgId), page.ID.ToString()); var btns = btnList.Where(t => t.BTN_FUN_TYPE == (int)PFBtnFuncTypeEnum.按钮).ToList(); //var rowBtns = this.GetOrderEntities(t => t.PAGE_TABLE_ID == page.ID && t.BTN_FUN_TYPE == (int)PFBtnFuncTypeEnum.行按钮, baseFiler).ToList(); // var rowBtns = btnList.Where(t => t.PAGE_TABLE_ID == page.ID && t.BTN_FUN_TYPE == (int)PFBtnFuncTypeEnum.行按钮).ToList(); //var panels = this.GetOrderEntities(t => t.PAGE_TABLE_ID == page.ID && t.IS_DISPLAY, baseFiler).ToList(); // var panels = this.GetEntitiesByRedis(null, new BaseFilter(filter.OrgId), page.ID.ToString()); panels = panels.Where(t => t.IS_DISPLAY).ToList(); if (page.PARAM_SCHEME_ID != null) { //var paramScheme = this.GetEntity(t => t.ID == page.PARAM_SCHEME_ID && t.ENABLE_STATUS == (int)FMEnableStatusEnum.启用, // new string[] { "Nav_Details.Nav_ParamItem" }); // var paramScheme = this.GetEntityByRedis(page.PARAM_SCHEME_ID ?? Guid.Empty, filter.GetOrgId()); if (paramScheme != null && paramScheme.ENABLE_STATUS == (int)FMEnableStatusEnum.启用) { var details = this.GetEntitiesByRedis(null, new BaseFilter(filter.OrgId), paramScheme.ID.ToString(), "Nav_ParamItem"); details = details.OrderBy(t => t.NUM).ToList(); //var items = this.GetEntitiesByRedis(filter.GetOrgId()); //foreach (var d in details) //{ // d.Nav_ParamItem = items.FirstOrDefault(i => i.ID == d.PARAM_ITEM_ID); //} //paramScheme.Nav_Details = details; } if (paramScheme != null && paramScheme.Nav_Details != null && paramScheme.Nav_Details.Any()) { T_PF_PAGE_TABLE_PANEL tablePanel = null; if (paramScheme.IS_PANEL_SHOW.HasValue && paramScheme.IS_PANEL_SHOW.Value) { tablePanel = new T_PF_PAGE_TABLE_PANEL() { ORG_ID = page.ORG_ID, PAGE_TABLE_ID = page.ID, LABEL = "实体参数", IS_DISPLAY = true, NUM = 10000, }; panels.Add(tablePanel); } var sortList = paramScheme.Nav_Details.OrderBy(t => t.NUM).ToList(); foreach (var item in sortList) { if (item.Nav_ParamItem == null || !item.IS_SHOW || item.Nav_ParamItem.ENABLE_STATUS == (int)FMEnableStatusEnum.禁用) continue; T_PF_COLUMN column = new T_PF_COLUMN() { ID = item.ID, ORG_ID = page.ORG_ID, PAGE_TABLE_ID = page.ID, FIELD_NAME = "Nav_SysParams." + item.Nav_ParamItem.FIELD_NAME, LABEL = item.Nav_ParamItem.LABEL, CONTROL_TYPE = item.Nav_ParamItem.TABLE_CONTROL_TYPE, ENUM = item.Nav_ParamItem.ENUM, NUM = 10000 + item.NUM, WIDTH = item.Nav_ParamItem.WIDTH, }; if (tablePanel != null) column.PAGE_TABLE_PANEL_ID = tablePanel.ID; colums.Add(column); } } } //自定义参数 tableModel.PageTable = page; tableModel.HasChildren = this.IsAny(i => i.PARENT_ID == page.ID, new BaseFilter(filter.OrgId)); tableModel.Nav_Columns = colums; tableModel.TableParams = param; tableModel.Btns = btns; tableModel.RowBtns = rowBtns; tableModel.Nav_Form = this.GetEntityByRedis(page.PAGE_FORM_ID ?? Guid.Empty, filter.GetOrgId()); tableModel.Nav_TablePanels = panels; CsRedisManager.StringSet(redisCode, tableModel); return tableModel; }); } /// /// 获取用户自定义隐藏信息 /// /// /// [HttpPost, Route("GetTablePageHiddenInfo")] public JsonActionResult GetTablePageHiddenInfo([FromBody] KeywordFilter filter) { return SafeExecute(() => { var pageId = LibUtils.ToGuid(filter.Keyword); var userId = LibUtils.ToGuid(filter.Parameter1); if (pageId == null) throw new Exception("Table ID不允许为空"); if (userId == null) throw new Exception(ErrMsg.FM_NO_USER_ID); TableUserCustomInfoModel result = new TableUserCustomInfoModel(); List hiddenCols = GetUserCustomHiddenCols(userId, pageId, filter); result.Nav_CustomHiddenCols = hiddenCols; return result; }); } /// /// 获取用户自定义配置信息 /// /// /// [HttpPost, Route("GetUserCustomConfigInfo")] public async Task> GetUserCustomConfigInfo([FromBody] KeywordFilter filter) { return await SafeExecuteAsync(async () => { var pageId = LibUtils.ToGuid(filter.Keyword); var userId = LibUtils.ToGuid(filter.Parameter1); if (pageId == null) throw new Exception("Table ID不允许为空"); if (userId == null) throw new Exception(ErrMsg.FM_NO_USER_ID); var redisCode = string.Format(RedisCacheKey.UserCustomConfigRedisKey, pageId.ToString() + userId, filter.GetOrgId()); bool isRedisConfig = true; var redisConfig = APT.Infrastructure.Api.ConfigurationManager.AppSettings["RedisFormConfig"]; if (!string.IsNullOrEmpty(redisConfig)) isRedisConfig = bool.Parse(redisConfig); if (isRedisConfig) { if (CsRedisManager.KeyExists(redisCode)) return CsRedisManager.GetClient().Get(redisCode); } TableUserCustomInfoModel result = new TableUserCustomInfoModel(); var hiddenCols = GetUserCustomHiddenCols(userId, pageId, filter); var cols = GetUserCustomCols(userId, pageId, result, filter.GetOrgId()); result.Nav_CustomHiddenCols = hiddenCols; result.Nav_CustomCols = cols; CsRedisManager.GetClient().Set(redisCode, result); return result; }); } /// /// 保存用户自定义配置信息 /// /// /// [HttpPost, Route("SaveUserCustomConfigInfo")] public JsonActionResult SaveUserCustomConfigInfo([FromBody] SaveTableUserCustomInfoModel model) { return SafeExecute(() => { if (model == null) return false; //不存在新增用户配置表 var customConfig = this.GetEntity(t => t.USER_ID == model.UserId); if (customConfig == null) { customConfig = new T_FM_USER_CUSTOM_CONFIG(); customConfig.ORG_ID = model.OrgId; customConfig.USER_ID = model.UserId; this.AddEntity(customConfig); } List deleteHColIds = new List(); List addHCols = new List(); List deleteCustomColIds = new List(); List saveCustomCols = new List(); #region 隐藏列 //不存在新增隐藏表 var customConfigHTab = this.GetEntity(t => t.USER_CUSTOM_CONFIG_ID == customConfig.ID && t.PAGE_TABLE_ID == model.PageTableId); if (customConfigHTab == null) { customConfigHTab = new T_FM_USER_CUSTOM_CONFIG_H_TAB(); customConfigHTab.ORG_ID = model.OrgId; customConfigHTab.PAGE_TABLE_ID = model.PageTableId; customConfigHTab.USER_CUSTOM_CONFIG_ID = customConfig.ID; this.AddEntity(customConfigHTab); } //数据库已有数据 var dbHCols = this.GetEntities(t => t.USER_CUSTOM_CONFIG_H_TAB_ID == customConfigHTab.ID, new BaseFilter()).ToList(); var hCols = model.HiddenColumnIds; //删除 if (dbHCols != null && dbHCols.Any()) { foreach (var item in dbHCols) { if (hCols == null || !hCols.Contains(item.COLUMN_ID.ToString())) deleteHColIds.Add(item.ID); } } //新增 if (hCols != null && hCols.Any()) { foreach (var item in hCols) { if (dbHCols == null || !dbHCols.Any(t => t.COLUMN_ID.ToString() == item)) { T_FM_USER_CUSTOM_CONFIG_H_COL hCol = new T_FM_USER_CUSTOM_CONFIG_H_COL(); hCol.ORG_ID = model.OrgId; hCol.USER_CUSTOM_CONFIG_H_TAB_ID = customConfigHTab.ID; hCol.COLUMN_ID = new Guid(item); addHCols.Add(hCol); } } } #endregion #region 自定义列信息 //不存在新增隐藏表 var customConfigTable = this.GetEntity(t => t.USER_CUSTOM_CONFIG_ID == customConfig.ID && t.PAGE_TABLE_ID == model.PageTableId); if (customConfigTable == null) { customConfigTable = new T_FM_USER_C_C_TABLE(); customConfigTable.ORG_ID = model.OrgId; customConfigTable.PAGE_TABLE_ID = model.PageTableId; customConfigTable.USER_CUSTOM_CONFIG_ID = customConfig.ID; this.AddEntity(customConfigTable); } //数据库已有数据 var dbCustomConfigCols = this.GetEntities(t => t.USER_C_C_TABLE_ID == customConfigTable.ID, new BaseFilter()).ToList(); var customConfigCols = model.Columns; //删除 if (dbCustomConfigCols != null && dbCustomConfigCols.Any()) { foreach (var item in dbCustomConfigCols) { var col = customConfigCols == null ? null : customConfigCols.FirstOrDefault(t => t.COLUMN_ID == item.COLUMN_ID); if (col == null) deleteCustomColIds.Add(item.ID); else { item.LABEL = col.LABEL; item.NUM = col.NUM; saveCustomCols.Add(item); } } } //新增 if (customConfigCols != null && customConfigCols.Any()) { foreach (var item in customConfigCols) { if (dbCustomConfigCols == null || !dbCustomConfigCols.Any(t => t.COLUMN_ID == item.COLUMN_ID)) { T_FM_USER_C_C_TABLE_COL hCol = new T_FM_USER_C_C_TABLE_COL(); CopyUtils.CopyObject(hCol, item); hCol.ORG_ID = model.OrgId; hCol.USER_C_C_TABLE_ID = customConfigTable.ID; saveCustomCols.Add(hCol); } } } #endregion this.UnifiedCommit(() => { if (addHCols.Any()) this.BantchAddEntityNoCommit(addHCols); if (saveCustomCols.Any()) this.BantchSaveEntityNoCommit(saveCustomCols); if (deleteHColIds.Any()) this.DeleteEntityNoCommit(t => deleteHColIds.Contains(t.ID)); if (deleteCustomColIds.Any()) this.DeleteEntityNoCommit(t => deleteCustomColIds.Contains(t.ID)); }); var redisCode = string.Format(RedisCacheKey.UserCustomConfigRedisKey, model.PageTableId.ToString() + model.UserId, model.OrgId); CsRedisManager.KeyDelete(redisCode); return true; }); } /// /// 保存用户自定义配置信息 默认分页条数 /// /// /// [HttpPost, Route("SaveUserCustomConfigInfoForPageSize")] public JsonActionResult SaveUserCustomConfigInfoForPageSize([FromBody] SaveTableUserCustomInfoModel model) { return SafeExecute(() => { if (model == null) return false; //不存在新增用户配置表 var customConfig = this.GetEntity(t => t.USER_ID == model.UserId); if (customConfig == null) { customConfig = new T_FM_USER_CUSTOM_CONFIG(); customConfig.ORG_ID = model.OrgId; customConfig.USER_ID = model.UserId; this.AddEntity(customConfig); } //不存在新增隐藏表 var customConfigTable = this.GetEntity(t => t.USER_CUSTOM_CONFIG_ID == customConfig.ID && t.PAGE_TABLE_ID == model.PageTableId); if (customConfigTable == null) { customConfigTable = new T_FM_USER_C_C_TABLE(); customConfigTable.ORG_ID = model.OrgId; customConfigTable.PAGE_TABLE_ID = model.PageTableId; customConfigTable.USER_CUSTOM_CONFIG_ID = customConfig.ID; customConfigTable.PAGE_SIZE = model.DefaultPageSize; this.AddEntity(customConfigTable); } else { customConfigTable.PAGE_SIZE = model.DefaultPageSize; this.UpdateEntity(customConfigTable); } var redisCode = string.Format(RedisCacheKey.UserCustomConfigRedisKey, model.PageTableId.ToString() + model.UserId, model.OrgId); CsRedisManager.KeyDelete(redisCode); return true; }); } /// /// 获取列表页中列表信息 /// /// /// [HttpPost, Route("GetTablePageTables")] public JsonActionResult GetTablePageTables([FromBody] KeywordFilter filter) { return SafeExecute(() => { string parentIdStr = filter.Parameter1; string tableIdStr = filter.Parameter2; filter.OrgType = FilterOrgTypeEnum.仅本组织; bool isRedisConfig = true; var redisCode = string.Format(RedisCacheKey.TablePageTablesRedisKey, filter.Keyword, parentIdStr, tableIdStr, filter.GetOrgId()); var redisConfig = APT.Infrastructure.Api.ConfigurationManager.AppSettings["RedisFormConfig"]; if (!string.IsNullOrEmpty(redisConfig)) isRedisConfig = bool.Parse(redisConfig); if (isRedisConfig) { if (CsRedisManager.KeyExists(redisCode)) return CsRedisManager.StringGet(redisCode); } var form = this.GetEntity(i => i.CODE == filter.Keyword,new BaseFilter(filter.GetOrgId())); if (form == null) return null; TablePageModel result = new TablePageModel(); result.Nav_Form = form; Guid? parentId = null; if (!string.IsNullOrEmpty(parentIdStr)) parentId = new Guid(parentIdStr); //Expression> expression = t => t.PAGE_FORM_ID == form.ID && t.PARENT_ID == parentId; //if (!string.IsNullOrEmpty(tableIdStr)) // expression = expression.And(t => t.ID == new Guid(tableIdStr)); //result.Nav_Tables = this.GetOrderEntities(expression, new BaseFilter() { Sort = "NUM" }).ToList(); filter.Sort = "NUM"; var redisFilter = new BaseFilter(filter.GetOrgId()); redisFilter.Sort = "NUM"; var pages = this.GetEntitiesByRedis(null, redisFilter, form.ID.ToString()); var page = pages.Where(t => t.PARENT_ID == parentId).ToList(); if (!string.IsNullOrEmpty(tableIdStr)) { page = page.Where(t => t.ID == new Guid(tableIdStr)).ToList(); } result.Nav_Tables = page; CsRedisManager.StringSet(redisCode, result); return result; }); } #region 私有函数 /// /// 获取用户自定义隐藏列 /// /// /// /// private List GetUserCustomHiddenCols(Guid? userId, Guid? pageTableId, BaseFilter filter) { List hiddenCols = null; if (userId != null) { var baseFilter = new BaseFilter(filter.GetOrgId()); //var customConfig = this.GetEntityByRedis(userId ?? Guid.Empty, filter.GetOrgId()); var customConfigs = this.GetEntitiesByRedis(null, baseFilter, userId.ToString()); var customConfig = customConfigs.FirstOrDefault(); if (customConfig != null) { //var hiddenTab = this.GetEntity(t => t.USER_CUSTOM_CONFIG_ID == customConfig.ID && t.PAGE_TABLE_ID == pageTableId); var hiddenTabas = this.GetEntitiesByRedis(null, baseFilter, customConfig.ID.ToString()) .Where(t => t.PAGE_TABLE_ID == pageTableId).ToList(); var hiddenTab = hiddenTabas.FirstOrDefault(t => t.PAGE_TABLE_ID == pageTableId); if (hiddenTab != null) { //var tmpHiddenCols = this.GetEntities(t => t.USER_CUSTOM_CONFIG_H_TAB_ID == hiddenTab.ID, // new BaseFilter(), new string[] { "Nav_Column" }).ToList(); var tmpHiddenCols = this.GetEntitiesByRedis(null, baseFilter, hiddenTab.ID.ToString()) .ToList(); if (tmpHiddenCols.Any()) { var columns = this.GetEntitiesByRedis(null, baseFilter, hiddenTab.PAGE_TABLE_ID.ToString()); foreach (var hc in tmpHiddenCols) { var column = columns.FirstOrDefault(i => i.ID == hc.COLUMN_ID); hc.Nav_Column = column; } if (tmpHiddenCols.Count > 0) { hiddenCols = new List(); tmpHiddenCols.ForEach(t => { if (t.Nav_Column != null) hiddenCols.Add(t.Nav_Column); }); } } } } } return hiddenCols; } /// /// 获取用户自定义列 /// /// /// /// private List GetUserCustomCols(Guid? userId, Guid? pageTableId, TableUserCustomInfoModel result, Guid orgid) { if (userId != null) { //var customConfig = this.GetEntity(t => t.USER_ID == userId); var baseFilter = new BaseFilter(orgid); baseFilter.IgnoreDataRule = true; var customConfigs = this.GetEntitiesByRedis(baseFilter); var customConfig = customConfigs.FirstOrDefault(t => t.USER_ID == userId); if (customConfig != null) { //var table = this.GetEntity(t => t.USER_CUSTOM_CONFIG_ID == customConfig.ID && t.PAGE_TABLE_ID == pageTableId); var tables = this.GetEntitiesByRedis(null, new BaseFilter(orgid), pageTableId.ToString()); var table = tables.FirstOrDefault(t => t.USER_CUSTOM_CONFIG_ID == customConfig.ID); if (table != null) { result.DefaultPageSize = table.PAGE_SIZE; //var cols = this.GetEntities(t => t.USER_C_C_TABLE_ID == table.ID, new BaseFilter(), // new string[] { "Nav_Column" }).ToList(); var cols = this.GetEntitiesByRedis(null, new BaseFilter(orgid), table.ID.ToString()); //var cols = colsList.Where(t => t.USER_C_C_TABLE_ID == table.ID).ToList(); if (cols.Any()) { var columns = this.GetEntitiesByRedis(null, new BaseFilter(orgid), pageTableId.ToString()); cols.ForEach(i => i.Nav_Column = columns.FirstOrDefault(x => x.ID == i.COLUMN_ID)); } return cols; } } } return null; } #endregion } }