コード例 #1
0
        /// <summary>
        /// 解析被授权的标签
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        private SYSTagNodeDTO[] getNodes(SYSTagConferAuthorityDTO dto)
        {
            ITag tag = TagService.GetInstance();

            tag.DependOn(this.Context);

            List <SYSTagNodeDTO> dtos = new List <SYSTagNodeDTO>();

            if (dto.TagNode.NodeType == EnumSYSTagNodeType.Tag)
            {
                //新增标签项权限
                if ((dto.AuthorityRange | EnumSYSTagRange.Parents) == dto.AuthorityRange)
                {
                    var tagInfo      = tag.GetTag(dto.TagNode.ID.Value);
                    var tagclassInfo = tag.GetTagClass(tagInfo.TagClassID.Value);
                    var taggroupInfo = tag.GetTagGroup(tagclassInfo.AppID.Value);

                    dtos.Add(SYSTagNodeDTO.Parse(taggroupInfo));
                    dtos.Add(SYSTagNodeDTO.Parse(tagclassInfo));
                    //返回当前标签项的父级节点
                    ALConvert.ToList <int>(tagInfo.Path)
                    .FindAll(d => d != 0 && d != tagInfo.ID)
                    .ForEach(d => dtos.Add(SYSTagNodeDTO.Parse(tag.GetTag(d))));
                }
                if ((dto.AuthorityRange | EnumSYSTagRange.Current) == dto.AuthorityRange)
                {
                    dtos.Add(SYSTagNodeDTO.Parse(tag.GetTag(dto.TagNode.ID.Value)));
                }
                if ((dto.AuthorityRange | EnumSYSTagRange.Children) == dto.AuthorityRange)
                {
                    tag.GetTagsByParentID(dto.TagNode.ID.Value)
                    .ForEach(d => dtos.Add(SYSTagNodeDTO.Parse(d)));
                }
            }
            else if (dto.TagNode.NodeType == EnumSYSTagNodeType.TagClass)
            {
                //新增标签权限
                if ((dto.AuthorityRange | EnumSYSTagRange.Parents) == dto.AuthorityRange)
                {
                    dtos.Add(SYSTagNodeDTO.Parse(tag.GetTagGroup(dto.TagNode.ParentID.Value)));
                }
                if ((dto.AuthorityRange | EnumSYSTagRange.Current) == dto.AuthorityRange)
                {
                    dtos.Add(SYSTagNodeDTO.Parse(tag.GetTagClass(dto.TagNode.ID.Value)));
                }
                if ((dto.AuthorityRange | EnumSYSTagRange.Children) == dto.AuthorityRange)
                {
                    tag.GetTagsByClassID(dto.TagNode.ID.Value)
                    .ForEach(d => dtos.Add(SYSTagNodeDTO.Parse(d)));
                }
            }
            else if (dto.TagNode.NodeType == EnumSYSTagNodeType.TagGroup)
            {
                //新增标签组权限
                if ((dto.AuthorityRange | EnumSYSTagRange.Current) == dto.AuthorityRange)
                {
                    dtos.Add(SYSTagNodeDTO.Parse(tag.GetTagGroup(dto.TagNode.ID.Value)));
                }
                if ((dto.AuthorityRange | EnumSYSTagRange.Children) == dto.AuthorityRange)
                {
                    tag.GetTagClassesByGroupCode(dto.TagNode.Code, (int?)dto.TagDisplayLevel)
                    .ForEach(d => dtos.Add(SYSTagNodeDTO.Parse(d)));
                    tag.GetTagsByGroupCode(dto.TagNode.Code, (int?)dto.TagDisplayLevel)
                    .ForEach(d => dtos.Add(SYSTagNodeDTO.Parse(d)));
                }
            }
            return(dtos.ToArray());
        }