Пример #1
0
        private void DataSynchEntity(object entity, string oper)
        {
            if (entity == null)
            {
                return;
            }
            RealtimeData data = new RealtimeData();

            data.Oper = oper;
            data.Type = "dept";
            if (entity is OrgDept)
            {
                OrgDept        orgDept  = entity as OrgDept;
                List <OrgDept> orgDepts = new List <OrgDept>();
                orgDepts.Add(orgDept);
                data.Data = orgDepts;
            }
            else if (entity is List <OrgDept> )
            {
                List <OrgDept> orgDepts = entity as List <OrgDept>;
                data.Data = orgDepts;
            }

            RealtimeSynchServiceFactory.GetInstance().EnqueueQueue(data);
        }
Пример #2
0
        private void HandlerOrgdept(FapDynamicObject fapDynamicData)
        {
            string pid = fapDynamicData.Get("Pid").ToString();

            if (pid.IsPresent())
            {
                OrgDept parentDept = _dbContext.Get <OrgDept>(pid);
                var     childDepts = _dbContext.Query <OrgDept>("select * from OrgDept where Pid=@Pid", new DynamicParameters(new { Pid = pid }));
                if (parentDept.IsFinal == 1)
                {
                    //更新父部门是否末级标记
                    parentDept.IsFinal = 0;
                    _dbContext.Update(parentDept);
                }
                fapDynamicData.SetValue("PCode", parentDept.DeptCode);
                fapDynamicData.SetValue("TreeLevel", parentDept.TreeLevel + 1);
                if (fapDynamicData.ContainsKey("DeptOrder") && fapDynamicData.Get("DeptOrder").ToString() == "0")
                {
                    fapDynamicData.SetValue("DeptOrder", childDepts.Any() ? childDepts.Count() : 1);
                }
                fapDynamicData.SetValue("FullName", parentDept.FullName + "/" + fapDynamicData.Get("DeptName"));
                fapDynamicData.SetValue("DeptCode", childDepts.Any() ? (childDepts.Max(d => d.DeptCode).ToInt() + 1).ToString() : $"{parentDept.DeptCode}01");
            }
            else
            {
                int c = _dbContext.Count <OrgDept>("Pid=''") + 1;
                if (fapDynamicData.Get("DeptCode").ToString().IsMissing())
                {
                    fapDynamicData.SetValue("DeptCode", c);
                    fapDynamicData.SetValue("FullName", fapDynamicData.Get("DeptName"));
                    fapDynamicData.SetValue("TreeLevel", 0);
                    fapDynamicData.SetValue("DeptOrder", c);
                }
            }
        }
Пример #3
0
 public ResponseViewModel MergeDepartment(MergeDeptModel mergeDept)
 {
     Guard.Against.Null(mergeDept, nameof(mergeDept));
     try
     {
         var employees = _dbContext.QueryWhere <Employee>("DeptUid in @Depts", new Dapper.DynamicParameters(new { Depts = mergeDept.MergeFids }));
         foreach (var employee in employees)
         {
             employee.DeptUid  = mergeDept.DeptFid;
             employee.DeptCode = mergeDept.DeptCode;
             _dbContext.Update(employee);
         }
         //删除旧部门
         var mergeDepts = _platformDomain.OrgDeptSet.Where(d => mergeDept.MergeFids.Contains(d.Fid));
         foreach (var dept in mergeDepts)
         {
             _dbContext.Delete(dept);
         }
         return(ResponseViewModelUtils.Sueecss());
     }
     catch (Exception ex)
     {
         //删除新建的合并部门
         OrgDept dept = _dbContext.Get <OrgDept>(mergeDept.DeptFid);
         _dbContext.Delete(dept);
         return(ResponseViewModelUtils.Failure(ex.Message));
     }
 }
Пример #4
0
        private void HandlerOrgdept(OrgDept orgDept)
        {
            string pid = orgDept.Pid;

            if (pid.IsPresent())
            {
                OrgDept parentDept = _dbContext.Get <OrgDept>(pid);
                var     childDepts = _dbContext.Query <OrgDept>("select * from OrgDept where Pid=@Pid", new DynamicParameters(new { Pid = pid }));
                if (parentDept.IsFinal == 1)
                {
                    //更新父部门是否末级标记
                    parentDept.IsFinal = 0;
                    _dbContext.Update(parentDept);
                }
                orgDept.PCode     = parentDept.DeptCode;
                orgDept.TreeLevel = parentDept.TreeLevel + 1;
                if (orgDept.DeptOrder == 0)
                {
                    orgDept.DeptOrder = childDepts.Any() ? childDepts.Count() : 1;
                }
                orgDept.FullName = parentDept.FullName + "/" + orgDept.DeptName;
                orgDept.DeptCode = childDepts.Any() ? (childDepts.Max(d => d.DeptCode).ToInt() + 1).ToString() : $"{parentDept.DeptCode}01";
            }
            else
            {
                int c = _dbContext.Count <OrgDept>("Pid=''") + 1;
                if (orgDept.DeptCode.IsMissing())
                {
                    orgDept.DeptCode  = c.ToString();
                    orgDept.FullName  = orgDept.DeptName;
                    orgDept.TreeLevel = 0;
                    orgDept.DeptOrder = c;
                }
            }
        }
Пример #5
0
        public JsonResult GetOrgChart2(string fid)
        {
            //人员类别设置
            string            sql          = "select count(0) as Num,DeptUid from Employee where 1=1 ";
            DynamicParameters parameters   = new DynamicParameters();
            string            empCategorys = _configService.GetSysParamValue("system.stat.empcategory");

            if (empCategorys.IsPresent())
            {
                sql += " and EmpCategory in @EmpCategorys ";
                parameters.Add("EmpCategorys", new List <string>(empCategorys.Split(',')));
            }

            //List<OrgDept> deptList = _dbContext.QueryEntity<OrgDept>(true);
            //查找有权限部门
            IEnumerable <OrgDept> deptList   = _rbacService.GetDeptInfoAuthority(_applicationContext.CurrentRoleUid);
            IEnumerable <string>  powerdepts = deptList.Where(d => d.HasPartPower == false).Select(d => d.Fid);

            if (powerdepts != null && powerdepts.Any())
            {
                sql += " and  DeptUid in @PowerDepts";
                parameters.Add("PowerDepts", powerdepts);
            }
            sql += " group by DeptUid";
            IEnumerable <DeptStat> list = _dbContext.Query <DeptStat>(sql, parameters);

            //获取选中部门
            OrgDept parent = deptList.FirstOrDefault <OrgDept>(d => d.Fid == fid);
            //过滤子部门 根据DeptCode
            IEnumerable <OrgDept> depts = deptList.Where(d => d.DeptCode.StartsWith(parent.DeptCode, StringComparison.OrdinalIgnoreCase)).OrderBy(d => d.DeptOrder);
            var employees = _dbContext.QueryAll <Fap.Core.Rbac.Model.Employee>();

            //人数计算
            depts.ToList().ForEach((d) =>
            {
                d.EmpNum = (list.FirstOrDefault(e => e.DeptUid == d.Fid)?.Num.ToString() ?? "0").ToInt();
            });
            depts.ToList().ForEach((d) =>
            {
                d.EmpNum = depts.Where(dd => dd.DeptCode.StartsWith(d.DeptCode, StringComparison.OrdinalIgnoreCase)).Sum(dd => dd.EmpNum);
                if (d.DeptManager.IsPresent())
                {
                    d.DeptManagerMC = employees.FirstOrDefault(e => e.Fid == d.DeptManager)?.EmpName;
                }
                if (d.Director.IsPresent())
                {
                    d.DirectorMC = employees.FirstOrDefault(e => e.Fid == d.Director)?.EmpName;
                }
            });
            IEnumerable <OrgChartNode2> nodeList = depts
                                                   .Select <OrgDept, OrgChartNode2>(d => new OrgChartNode2 {
                Key = d.Fid, Parent = d.Pid, DeptName = d.DeptName, DeptCode = d.DeptCode, ManagerUid = d.DeptManager, ManagerName = d.DeptManagerMC, DirectorUid = d.Director, DirectorName = d.DirectorMC, DeptNum = d.EmpNum.ToString()
            });

            //IEnumerable<OrgChartNode> nodeList = deptList.Select<OrgDept, OrgChartNode>(d => new OrgChartNode { Id = d.Id, Parent = (deptList.FirstOrDefault(t => t.Fid == d.Pid) == null ? 0 : deptList.FirstOrDefault(t => t.Fid == d.Pid).Id), Text = d.DeptName, ExtendData=d.DeptCode });
            return(Json(nodeList));
        }
Пример #6
0
        public override void AfterEntityDelete(object entity)
        {
            //通过上面的动态删除子集的时候调用
            OrgDept orgDept = entity as OrgDept;

            //string fid = orgDept.Fid;

            HandleDelete(entity, orgDept.Fid, orgDept.Pid);
        }
Пример #7
0
        private void ValideDelete(string fid)
        {
            int c = _dbContext.Count <Employee>("DeptUid=@Fid", new DynamicParameters(new { Fid = fid }));

            if (c > 0)
            {
                OrgDept dept = _dbContext.Get <OrgDept>(fid);
                throw new Exception($"[{dept.DeptName}]还有员工,不能删除!");
            }
        }
Пример #8
0
        /// <summary>
        /// 更新前
        /// </summary>
        public override void BeforeDynamicObjectUpdate(FapDynamicObject fapDynamicData)
        {
            string  fid     = fapDynamicData.Get("Fid").ToString();
            OrgDept orgDept = _dbContext.Get <OrgDept>(fid);
            string  pid     = fapDynamicData.Get("Pid").ToString();

            //父部门没变化
            if (pid != orgDept.Pid)
            {
                HandlerOrgdept(fapDynamicData);
            }
        }
Пример #9
0
        public override void BeforeEntityUpdate(object entity)
        {
            OrgDept orgDept = entity as OrgDept;
            string  fid     = orgDept.Fid;
            OrgDept oriDept = _dbContext.Get <OrgDept>(fid);
            string  pid     = orgDept.Pid;

            //父部门没变化
            if (pid != oriDept.Pid)
            {
                HandlerOrgdept(orgDept);
            }
        }
Пример #10
0
        /// <summary>
        /// 更新前
        /// </summary>
        public override void BeforeDynamicObjectUpdate(dynamic fapDynamicData)
        {
            dynamic dynamicData = fapDynamicData;
            string  fid         = dynamicData.Fid;
            string  sql         = $"select * from OrgDept where Fid='{fid}'";
            OrgDept oriDept     = _dbContext.QueryFirst <OrgDept>(sql, null, false, _dbSession);

            string pid = dynamicData.Pid;

            //父部门没变化
            if (pid == oriDept.Pid && pid.IsNotNullOrEmpty())
            {
                OrgDept pDept = _dbContext.Get <OrgDept>(pid, false, _dbSession);
                dynamicData.FullName = pDept.FullName + "/" + dynamicData.DeptName;
            }
            else
            {
                //父部门不为空
                if (pid.IsNotNullOrEmpty())
                {
                    DynamicParameters param = new DynamicParameters();
                    param.Add("Fid", pid);
                    IEnumerable <OrgDept> list = _dbContext.QueryWhere <OrgDept>(" Fid=@Fid or Pid=@Fid", param, false, _dbSession);
                    OrgDept pDept = list.First <OrgDept>(d => d.Fid == pid);
                    dynamicData.PCode     = pDept.DeptCode;
                    dynamicData.TreeLevel = pDept.TreeLevel + 1;
                    if (dynamicData.ContainsKey("DeptOrder") && dynamicData.DeptOrder == 0)
                    {
                        dynamicData.DeptOrder = list.Count();
                    }
                    dynamicData.FullName = pDept.FullName + "/" + dynamicData.DeptName;
                    var childs = list.Where(d => d.Pid == pid);
                    if (childs == null || childs.Count() < 1)
                    {
                        dynamicData.DeptCode = pDept.DeptCode + "01";
                    }
                    else
                    {
                        string maxCode = childs.Max(d => d.DeptCode);
                        dynamicData.DeptCode = (maxCode.ToInt32() + 1).ToString();
                    }
                }
                else
                {
                    dynamicData.DeptCode  = "1";
                    dynamicData.FullName  = dynamicData.DeptName;
                    dynamicData.TreeLevel = 1;
                    dynamicData.DeptOrder = 1;
                }
            }
        }
Пример #11
0
        public bool TryGetValue(string fid, out OrgDept fapOrg)
        {
            if (!_initialized)
            {
                Init();
            }
            var result = _allOrgs.FirstOrDefault <OrgDept>(f => f.Fid == fid);

            if (result != null)
            {
                fapOrg = result;
                return(true);
            }
            fapOrg = null;
            return(false);
        }
Пример #12
0
        public override void AfterEntityUpdate(object entity)
        {
            OrgDept orgDept = entity as OrgDept;
            string  fid     = orgDept.Fid;
            //检查是否有子
            var childs = _dbContext.Query <OrgDept>("select * from OrgDept where Pid=@Pid", new DynamicParameters(new { Pid = fid }));

            if (childs.Any())
            {
                string deptCode = orgDept.DeptCode;
                string fullName = orgDept.FullName;
                int    level    = orgDept.TreeLevel;
                HandlerChildsEdit(deptCode, fullName, level, childs);
            }
            //同步其他系統,放入隊列
            DataSynchDynamicObject(orgDept, DataChangeTypeEnum.UPDATE);
            _appDomain.OrgDeptSet.Refresh();
        }
Пример #13
0
        private void HandleDelete(object fapDynamicData, string fid, string pid)
        {
            if (pid.IsPresent())
            {
                var pchilds = _dbContext.Query <OrgDept>("select * from OrgDept where Pid=@Pid", new DynamicParameters(new { Pid = pid }));
                if (!pchilds.Any())
                {
                    //如果父部门无子部门,修改父部门末级标记
                    OrgDept parentOrgDept = _dbContext.Get <OrgDept>(pid);
                    if (parentOrgDept != null)
                    {
                        parentOrgDept.IsFinal = 1;
                        //简单修改末级标记简单处理
                        _dbContext.Execute("Update OrgDept set IsFinal=1 where Fid=@Fid", new DynamicParameters(new { Fid = parentOrgDept.Fid }));
                        DataSynchDynamicObject(parentOrgDept, DataChangeTypeEnum.UPDATE);
                    }
                }
            }
            var rd = _appDomain.RoleDeptSet.Where(d => d.DeptUid == fid);

            if (rd.Any())
            {
                //删除角色部门中的数据
                DynamicParameters param = new DynamicParameters();
                param.Add("Fid", fid);
                _dbContext.DeleteExec(nameof(FapRoleDept), "DeptUid=@Fid", param);
                _appDomain.RoleDeptSet.Refresh();
            }
            //删除子部门
            IEnumerable <OrgDept> childs = _dbContext.Query <OrgDept>("select * from OrgDept where Pid=@Pid", new DynamicParameters(new { Pid = fid }));

            if (childs.Any())
            {
                HandlerChildsDelete(childs);
            }
            _appDomain.OrgDeptSet.Refresh();
            //同步其他系统 放入队列
            DataSynchDynamicObject(fapDynamicData, DataChangeTypeEnum.DELETE);
        }
Пример #14
0
        // POST: api/Common
        public JsonResult GetOrgDepts(string pid)
        {
            IEnumerable <OrgDept> listDepts = null;
            OrgDept pDept = null;

            if (pid.IsMissing())
            {
                pDept = _dbContext.QueryFirstOrDefaultWhere <OrgDept>("(Pid='' or Pid='~' or Pid='0')");
                var listDept = _dbContext.QueryAll <OrgDept>().AsList();
                listDept.Remove(pDept);
                listDepts = listDept;
            }
            else
            {
                pDept     = _dbContext.Get <OrgDept>(pid);
                listDepts = _dbContext.QueryWhere <OrgDept>("DeptCode like '" + pDept.DeptCode + "%'");
            }

            List <TreeDataView> oriList = listDepts.Select(t => new TreeDataView {
                Id = t.Fid.ToString(), Pid = t.Pid.ToString(), Data = new { deptCode = t.DeptCode }, Text = t.DeptName, Icon = "icon-folder orange ace-icon fa fa-folder"
            }).ToList <TreeDataView>();

            List <TreeDataView> tree = new List <TreeDataView>();

            TreeDataView treeRoot = new TreeDataView()
            {
                Id    = pDept.Fid,
                Text  = pDept.DeptName,
                Data  = new { deptCode = pDept.DeptCode },
                State = new NodeState {
                    Opened = true
                },
                Icon = "icon-folder orange ace-icon fa fa-folder",
            };

            tree.Add(treeRoot);
            TreeViewHelper.MakeTree(treeRoot.Children, oriList, treeRoot.Id);
            return(JsonIgnoreNull(tree));
        }
Пример #15
0
        /// <summary>
        /// 获取带权限的部门列表,如果仅仅是部分权限 OrgDept属性HasPartPower=true
        /// </summary>
        /// <param name="roleUid"></param>
        /// <param name="roleDepts"></param>
        /// <returns></returns>
        public bool TryGetValueByRole(string roleUid, out IEnumerable <OrgDept> orgDepts)
        {
            if (!_initialized)
            {
                Init();
            }
            var roleDepts = _allRoleDept.Where <FapRoleDept>(f => f.RoleUid == roleUid);
            IEnumerable <OrgDept> allDepts = _fapPlatformDomain.OrgDeptSet;
            OrgDept rootDept = allDepts.FirstOrDefault(d => string.IsNullOrWhiteSpace(d.Pid) || d.Pid == "#" || d.Pid == "~" || d.Pid == "");

            if (roleDepts.Any())
            {
                var roleDeptList = roleDepts.AsList();
                if (roleDeptList.Exists(r => r.DeptUid == rootDept.Fid))
                {
                    orgDepts = allDepts;
                }
                else
                {
                    List <OrgDept> powerDepts = new List <OrgDept>();
                    if (rootDept != null)
                    {
                        var croot = rootDept.Clone() as OrgDept;
                        croot.HasPartPower = true;
                        powerDepts.Add(croot);
                    }

                    foreach (var rd in roleDepts)
                    {
                        OrgDept tempDept = allDepts.FirstOrDefault <OrgDept>(d => d.Fid == rd.DeptUid);
                        if (tempDept != null)
                        {
                            powerDepts.Add(tempDept);
                            AddParentOrgDept(tempDept);
                        }
                    }
                    orgDepts = powerDepts;
                    void AddParentOrgDept(OrgDept tempDept)
                    {
                        if (tempDept != null && tempDept.Fid != rootDept.Fid)
                        {
                            var tempDeptParent = allDepts.FirstOrDefault <OrgDept>(d => d.Fid == tempDept.Pid);
                            //存在父部门
                            if (tempDeptParent != null)
                            {
                                //父部门没在权限中,且还没包含进去
                                if (!roleDeptList.Exists(r => r.DeptUid == tempDeptParent.Fid) && !powerDepts.Exists(d => d.Fid == tempDeptParent.Fid))
                                {
                                    var cp = tempDeptParent.Clone() as OrgDept;
                                    cp.HasPartPower = true;
                                    powerDepts.Add(cp);
                                }

                                AddParentOrgDept(tempDeptParent);
                            }
                        }
                    }
                }
                return(true);
            }
            orgDepts = Enumerable.Empty <OrgDept>();
            return(false);
        }
Пример #16
0
 private void BiuldOrgDept(IEnumerable <OrgDept> cOrgDepts, IEnumerable <OrgDept> allOrgDept, OrgDept pOrgDept)
 {
     if (cOrgDepts != null && cOrgDepts.Any())
     {
         pOrgDept.Children = cOrgDepts;
         foreach (OrgDept dept in cOrgDepts)
         {
             var tempDepts = allOrgDept.Where(d => d.Pid == dept.Fid);
             BiuldOrgDept(tempDepts, allOrgDept, dept);
         }
     }
 }
Пример #17
0
        public Pageable AnalysisPostData(JqGridPostData jqGridPostData)
        {
            IEnumerable <FapColumn> fapColumns = _dbContext.Columns(jqGridPostData.QuerySet.TableName);

            jqGridPostData.Filters = jqGridPostData.Filters.IsPresent() ? jqGridPostData.Filters.Replace("query ", "select ") : "";
            //矫正当前页为0的情况
            if (jqGridPostData.Page < 0)
            {
                jqGridPostData.Page = 1;
            }
            QuerySet qs       = jqGridPostData.QuerySet;
            Pageable pageable = new Pageable(_dbContext)
            {
                TableName = qs.TableName, QueryCols = qs.QueryCols, HistoryTimePoint = jqGridPostData.TimePoint
            };

            //设置统计
            if (qs.Statsetlist != null && qs.Statsetlist.Any())
            {
                pageable.AddStatField(qs.Statsetlist);
            }
            if (qs.Parameters != null && qs.Parameters.Count > 0)
            {
                foreach (var param in qs.Parameters)
                {
                    pageable.AddParameter(param.ParamKey, param.ParamValue);
                }
            }
            //优先级高
            if (jqGridPostData.Sidx.IsPresent())
            {
                var sidxs = jqGridPostData.Sidx.SplitComma();
                foreach (var sidx in sidxs)
                {
                    if (sidx.IsPresent())
                    {
                        string[] odx = sidx.Trim().Split(' ');
                        if (odx != null)
                        {
                            var    col     = fapColumns.First(f => f.ColName == odx[0]);
                            string colName = col.ColName;
                            if (col.CtrlType == FapColumn.CTRL_TYPE_REFERENCE)
                            {
                                colName += "MC";
                            }
                            if (odx.Length > 1)
                            {
                                pageable.OrderBy.AddOrderByCondtion(colName, odx[1]);
                            }
                            else
                            {
                                pageable.OrderBy.AddOrderByCondtion(colName, jqGridPostData.Sord);
                            }
                        }
                    }
                }
            }
            if (qs.OrderByList != null && qs.OrderByList.Count > 0)
            {
                foreach (var orderby in qs.OrderByList)
                {
                    pageable.OrderBy.AddOrderByCondtion(orderby.Field, orderby.Direction);
                }
            }

            //构造初始化条件,如果没有过滤条件,又设置了初始化条件则设置初始化条件。或者设置了过滤条件且初始化条件为全局条件则同样设置where条件
            if (qs.GlobalWhere.IsPresent())
            {
                pageable.AddWhere(qs.GlobalWhere);
            }
            if (jqGridPostData.Filters.IsMissing() && qs.InitWhere.IsPresent())
            {
                pageable.AddWhere(qs.InitWhere);
            }

            //页面级条件
            JsonFilterToSql jfs = new JsonFilterToSql(_dbContext);

            if (jqGridPostData.PageCondition.IsPresent())
            {
                pageable.AddWhere(jfs.BuilderFilter(pageable.TableName, jqGridPostData.PageCondition), QuerySymbolEnum.AND);
            }
            //构造jqgrid过滤条件
            if (jqGridPostData.Filters.IsPresent())
            {
                pageable.AddWhere(jfs.BuilderFilter(pageable.TableName, jqGridPostData.Filters), QuerySymbolEnum.AND);
                //string filterWhere = JsonFilterToSql.BuildFilterCondition(fapColumns, jqGridPostData.Filters);
            }
            //事件处理
            //actionSimplepageable?.Invoke(pageable);
            pageable.CurrentPage = jqGridPostData.Page;
            pageable.PageSize    = jqGridPostData.Rows;
            //数据权限
            string dataWhere = DataWhere();

            if (dataWhere.IsPresent())
            {
                pageable.AddWhere(dataWhere);
            }
            //解析条件
            pageable.Where = AnalysisWhere(pageable.Where);
            return(pageable);

            string AnalysisWhere(string where)
            {
                if (where.IsMissing())
                {
                    return("");
                }
                //获得安全sql
                where = where.FilterDangerSql();
                //替换部门权限占位符
                if (where.IndexOf(FapPlatformConstants.DepartmentAuthority) > -1)
                {
                    where = where.Replace(FapPlatformConstants.DepartmentAuthority, DeptWhere());
                }
                return(where.ReplaceIgnoreCase("query", "select "));
            }

            string DeptWhere()
            {
                var roledepts = _rbacService.GetRoleDeptList(_applicationContext.CurrentRoleUid);

                if (roledepts.Any())
                {
                    return(string.Join(",", roledepts.Select(d => "'" + d.DeptUid + "'")));
                }
                else
                {
                    return("'meiyou'");
                }
            }

            //数据权限
            string DataWhere()
            {
                string where = string.Empty;
                var roleDatas = _rbacService.GetRoleDataList(_applicationContext.CurrentRoleUid);

                if (roleDatas != null && roleDatas.Any())
                {
                    var rd = roleDatas.FirstOrDefault <FapRoleData>(r => r.TableUid == qs.TableName);
                    if (rd != null)
                    {
                        where = rd.SqlCondition;
                        string          pattern = FapPlatformConstants.VariablePattern;
                        Regex           reg     = new Regex(pattern);
                        MatchCollection matchs  = reg.Matches(where);
                        foreach (var mtch in matchs)
                        {
                            int    length  = mtch.ToString().Length - 3;
                            string colName = mtch.ToString().Substring(2, length);
                            if (colName.EqualsWithIgnoreCase("DeptUid"))
                            {
                                where = where.Replace(mtch.ToString(), _applicationContext.DeptUid);
                            }
                            else if (colName.EqualsWithIgnoreCase("CurrentRoleUid"))
                            {
                                where = where.Replace(mtch.ToString(), _applicationContext.CurrentRoleUid);
                            }
                            else if (colName.EqualsWithIgnoreCase("EmpUid"))
                            {
                                where = where.Replace(mtch.ToString(), _applicationContext.EmpUid);
                            }
                            else if (colName.EqualsWithIgnoreCase("DeptCode"))
                            {
                                string deptCode = _applicationContext.DeptCode;
                                if (deptCode.IsMissing())
                                {
                                    OrgDept dept = _dbContext.Get <OrgDept>(_applicationContext.DeptUid);
                                    deptCode = dept.DeptCode;
                                }
                                where = where.Replace(mtch.ToString(), deptCode);
                            }
                        }
                    }
                }
                return(where);
            }
        }
Пример #18
0
        public override void BeforeEntityDelete(object entity)
        {
            OrgDept dept = entity as OrgDept;

            ValideDelete(dept.Fid);
        }