Exemplo n.º 1
0
        public ContentResult Update()
        {
            ResultData <string> rt       = new ResultData <string>();
            SResource           resource = GetUpdate <SResource>();

            //验证
            if (rService.IsNotExits(resource, false))
            {
                if (!rService.IsParentEqSelf(resource))
                {
                    rService.UpdateResource(resource);
                }
                else
                {
                    rt.status  = -1;
                    rt.message = "父类资源不能是资源本身.";
                }
            }
            else
            {
                rt.status  = -1;
                rt.message = "资源名称已经存在.";
            }

            return(ReturnResult(rt));
        }
Exemplo n.º 2
0
        /// <summary>
        /// 递归遍历
        /// </summary>
        /// <param name="parent"></param>
        /// <param name="resouses"></param>
        /// <param name="tn"></param>
        /// <param name="url"></param>
        /// <returns></returns>
        private static List <TreeNode> GetTree(SResource parent, List <SResource> resouses, TreeNode tp, string url)
        {
            List <TreeNode> tns    = new List <TreeNode>();
            string          curUrl = url.Substring(1, url.LastIndexOf("/"));

            List <SResource> children = resouses.Select(r => r).Where(t => t.ParentID == parent.ID).ToList();

            foreach (SResource child in children)
            {
                TreeNode tn = new TreeNode();
                tn.id       = "tree" + child.ID;
                tn.text     = string.IsNullOrEmpty(child.ResourceDesc) ? "菜单" : child.ResourceDesc;
                tn.href     = string.IsNullOrEmpty(child.ResourceURL) ? "javascript:###;" : child.ResourceURL;
                tn.name     = child.ResourceName;
                tn.level    = 2;
                tn.children = GetTree(child, resouses, tn, url);
                if (tn.children.Count > 0)
                {
                    tn.iconCls = "iconfont icon-folder";
                }
                else
                {
                    tn.iconCls = "iconfont icon-file";
                }

                if (tn.href.LastIndexOf(curUrl) > -1)
                {
                    tn.state = "active";
                    tp.state = "active";
                }
                tns.Add(tn);
            }
            return(tns);
        }
Exemplo n.º 3
0
        /// <summary>
        /// 添加资源
        /// </summary>
        /// <param name="resource"></param>
        /// <returns></returns>
        public object AddResource(SResource resource)
        {
            DatabaseContext dbContext = rRepository.DbCondext;

            try
            {
                dbContext.BeginTransaction();

                //添加资源  添加按钮
                object id = rRepository.Insert(resource);
                foreach (SOperator o in resource.Operators)
                {
                    o.ResourceID   = Convert.ToInt32(id);
                    o.OperatorDesc = o.OperatorName;
                    oRepository.Insert(o);
                }

                dbContext.CompleteTransaction();
                return(id);
            }
            catch (Exception ex)
            {
                dbContext.AbortTransaction();
                throw ex;
            }
        }
Exemplo n.º 4
0
 /// <summary>
 /// 判断父类组织是否等于当前组织
 /// </summary>
 /// <param name="org"></param>
 /// <returns></returns>
 public bool IsParentEqSelf(SResource resource)
 {
     if (resource.ParentID == 0)
     {
         return(false);
     }
     return(resource.ParentID == resource.ID);
 }
Exemplo n.º 5
0
        /// <summary>
        /// 递归
        /// </summary>
        /// <param name="parent"></param>
        /// <param name="orgs"></param>
        /// <returns></returns>
        private void GetChildTree(SResource parent, List <SResource> resources)
        {
            List <SResource> children = resources.Select(t => t).Where(o => o.ParentID == parent.ID).ToList();

            foreach (SResource child in children)
            {
                parent.Children.Add(child);
                GetChildTree(child, resources);
            }
        }
Exemplo n.º 6
0
        /// <summary>
        /// 根据菜单获取按钮列表
        /// </summary>
        /// <param name="parentTn"></param>
        /// <param name="resource"></param>
        public void GetOperatiors(TreeNode parentTn, SResource resource)
        {
            List <SOperator> opts = resService.GetOperatorByResource(resource.ID);

            foreach (SOperator opt in opts)
            {
                TreeNode tn = new TreeNode();
                tn.id   = "btn" + opt.ID.ToString(); //防止按钮id和菜单id冲突,所以添加btn前缀
                tn.text = opt.OperatorDesc;
                tn.name = "btn";
                parentTn.children.Add(tn);
            }
        }
Exemplo n.º 7
0
 /// <summary>
 /// 构建子节点
 /// </summary>
 /// <param name="resource"></param>
 /// <param name="parentTn"></param>
 public void BuildChildTree(SResource resource, TreeNode parentTn)
 {
     foreach (SResource res in resource.Children)
     {
         TreeNode tn = new TreeNode();
         tn.id   = res.ID.ToString();
         tn.text = res.ResourceDesc;
         tn.name = res.ResourceName;
         if (res.Children.Count > 0)
         {
             BuildChildTree(res, tn);
         }
         parentTn.children.Add(tn);
     }
 }
Exemplo n.º 8
0
        /// <summary>
        /// 查询所有子资源(包括本身)
        /// </summary>
        /// <param name="parent"></param>
        /// <param name="resources"></param>
        public void GetResourceWithChildren(SResource parent, List <SResource> resources)
        {
            if (parent == null)
            {
                return;
            }
            resources.Add(parent);

            List <SResource> children = GetChildResource(parent.ID);

            foreach (SResource child in children)
            {
                GetResourceWithChildren(child, resources);
            }
        }
Exemplo n.º 9
0
        /// <summary>
        /// 递归遍历
        /// </summary>
        /// <param name="parent"></param>
        /// <param name="resouses"></param>
        /// <param name="tn"></param>
        /// <param name="url"></param>
        /// <returns></returns>
        public List <TreeNode> GetTree(SResource parent, List <SResource> resouses)
        {
            List <TreeNode> tns = new List <TreeNode>();

            List <SResource> children = resouses.Select(r => r).Where(t => t.ParentID == parent.ID).ToList();

            foreach (SResource child in children)
            {
                TreeNode tn = new TreeNode();
                tn.id       = "tree" + child.ID;
                tn.text     = child.ResourceDesc;
                tn.href     = child.ResourceURL;
                tn.name     = child.ResourceName;
                tn.children = GetTree(child, resouses);
                tns.Add(tn);
            }
            return(tns);
        }
Exemplo n.º 10
0
        /// <summary>
        /// 递归
        /// </summary>
        /// <param name="parent"></param>
        /// <param name="resources"></param>
        /// <returns></returns>
        private void GetResouceTree(SResource parent, List <SResource> resources)
        {
            List <SResource> children = resources.Select(t => t).Where(o => o.ParentID == parent.ID).ToList();

            if (children.Count > 0)
            {
                foreach (SResource child in children)
                {
                    parent.Children.Add(child);
                    GetResouceTree(child, resources);
                }
            }
            else if (!string.IsNullOrWhiteSpace(parent.ResourceURL))
            {
                List <SOperator> ops = rRepository.GetOperatorByResource(parent.ID);
                foreach (SOperator child in ops)
                {
                    parent.Operators.Add(child);
                }
            }
        }
Exemplo n.º 11
0
        /// <summary>
        /// 更新
        /// </summary>
        /// <param name="resource"></param>
        public void UpdateResource(SResource resource)
        {
            DatabaseContext dbContext = rRepository.DbCondext;

            try
            {
                dbContext.BeginTransaction();

                rRepository.Update(resource);
                foreach (SOperator o in resource.Operators)
                {
                    switch (o.CURD)
                    {
                    case "add":
                        o.ResourceID   = resource.ID;
                        o.OperatorDesc = o.OperatorName;
                        oRepository.Insert(o);
                        break;

                    case "delete":
                        oRepository.Delete(o);
                        break;

                    default:
                        o.OperatorDesc = o.OperatorName;
                        oRepository.Update(o);
                        break;
                    }
                }

                dbContext.CompleteTransaction();
            }
            catch (Exception ex)
            {
                dbContext.AbortTransaction();
                throw ex;
            }
        }
Exemplo n.º 12
0
        public ContentResult SearchSingle(int Id)
        {
            SResource res = rService.GetResourcByID(Id);

            return(ReturnResult(res));
        }
Exemplo n.º 13
0
 /// <summary>
 /// 判断是否存在
 /// </summary>
 /// <param name="resource"></param>
 /// <param name="isAdd"></param>
 /// <returns></returns>
 public bool IsNotExits(SResource resource, bool isAdd)
 {
     return(rRepository.IsNotExits(resource, isAdd));
 }