public static SYSTagNodeDTO Parse(SYSTag tagInfo)
        {
            SYSTagNodeDTO node = new SYSTagNodeDTO
            {
                ID           = tagInfo.ID,
                NodeType     = EnumSYSTagNodeType.Tag,
                Name         = tagInfo.TagName,
                Code         = tagInfo.TagCode,
                Value        = tagInfo.TagValue,
                IsBuiltIn    = tagInfo.IsBuiltIn,
                DisplayLevel = null,
                Sequence     = tagInfo.Sequence,
                Remark       = tagInfo.Remark,
                DataSource   = tagInfo
            };

            if (tagInfo.ParentID == 0)
            {
                node.ParentID       = tagInfo.TagClassID;
                node.ParentNodeType = EnumSYSTagNodeType.TagClass;
            }
            else
            {
                node.ParentID       = tagInfo.ParentID;
                node.ParentNodeType = EnumSYSTagNodeType.Tag;
            }
            return(node);
        }
Exemple #2
0
        ///// <summary>
        ///// 删除已贴入实体的标签项
        ///// </summary>
        ///// <typeparam name="T">标签贴入对象</typeparam>
        ///// <param name="pkid">标签贴入对象的主键值</param>
        ///// <param name="tagID">标签值</param>
        ///// <returns>是否操作成功</returns>
        //public ITag UnApply<T>(int pkid, int tagID) where T : Entity
        //{
        //    TableAttribute table = typeof(T).GetCustomAttributes(typeof(TableAttribute), false).FirstOrDefault() as TableAttribute;
        //    if (table != null && !string.IsNullOrEmpty(table.TableName) && !string.IsNullOrEmpty(table.PrimaryKey))
        //    {
        //        if (table.TableName == "Company" && companyTagBO.CompatibleMode)
        //        {
        //            companyTagBO.DeleteByCompanyIDAndTagID(pkid, tagID) > 0;
        //        }
        //        else
        //        {
        //            tagApplyBO.DeleteByCompanyIDAndTagID(tagTargetBO[table.TableName].ID.Value, pkid, tagID) > 0;
        //        }
        //    }
        //    return this;
        //}

        ///// <summary>
        ///// 删除已贴入实体的全部标签项
        ///// </summary>
        ///// <typeparam name="T">标签贴入对象</typeparam>
        ///// <param name="pkid">标签贴入对象的主键值</param>
        ///// <returns>是否操作成功</returns>
        //public ITag UnApply<T>(long pkid) where T : Entity
        //{
        //    TableAttribute table = typeof(T).GetCustomAttributes(typeof(TableAttribute), false).FirstOrDefault() as TableAttribute;
        //    if (table != null && !string.IsNullOrEmpty(table.TableName) && !string.IsNullOrEmpty(table.PrimaryKey))
        //    {
        //        if (table.TableName == "Company" && companyTagBO.CompatibleMode)
        //        {
        //            companyTagBO.DeleteByCompanyID(pkid) > 0;
        //        }
        //        else
        //        {
        //            tagApplyBO.DeleteByCompanyID(tagTargetBO[table.TableName].ID.Value, pkid) > 0;
        //        }
        //    }
        //    return this;
        //}
        #endregion

        /// <summary>
        /// 删除已贴入实体的标签项
        /// </summary>
        /// <typeparam name="T">实体类型</typeparam>
        /// <param name="entity">要取消贴入标签的实体,需要指定ID属性</param>
        /// <param name="tagInfo">查询条件,需要指定ID或TagCode或TagName属性</param>
        public ITag UnApply <T>(T entity, SYSTag tagInfo) where T : Entity, new()
        {
            long?tagID = tagBO.GetIDByTag(tagInfo);

            tagApplyBO.DeleteByCompanyIDAndTagID(
                tagTargetBO[entity.Property.TableAttribute.TableName].ID.Value,
                ALConvert.ToLong0(entity.Property.GetValue("ID")),
                tagID.Value);
            return(this);
        }
Exemple #3
0
 /// <summary>
 /// 将指定的标签项贴入实体
 /// </summary>
 /// <typeparam name="T">实体类型</typeparam>
 /// <param name="tagInfo">标签,需要指定ID属性</param>
 /// <param name="entity">要贴入标签的实体,需要指定ID属性</param>
 /// <returns></returns>
 public ITag Apply <T>(SYSTag tagInfo, T entity) where T : Entity, new()
 {
     tagApplyBO.Save(new SYSTagApply
     {
         TagID          = tagInfo.ID,
         TargetID       = tagTargetBO[entity.Property.TableAttribute.TableName].ID,
         TargetObjectID = ALConvert.ToLong(entity.Property.GetValue(entity.Property.TableAttribute.PrimaryKey))
     });
     return(this);
 }
Exemple #4
0
        /// <summary>
        /// 删除指定的标签项,子级标签项,标签日志,标签Apply数据
        /// </summary>
        /// <param name="tagInfo">查询条件,需要指定ID或TagCode或TagName属性</param>
        public void Delete(SYSTag tagInfo)
        {
            long?tagID = tagBO.GetIDByTag(tagInfo);

            //删除下级选项
            tagBO.GetTagsByParentID(tagID.Value)
            .ToList <SYSTag>().ForEach(d => this.Delete(d));
            //删除标签选项
            tagLogsBO.DeleteByTagID(tagID.Value);
            tagApplyBO.DeleteByTagID(tagID.Value);
            tagBO.Remove(tagID.Value);
        }
Exemple #5
0
        /// <summary>
        /// 返回指定实体已贴入的标签日志
        /// </summary>
        /// <typeparam name="T">实体类型</typeparam>
        /// <param name="tagInfo">标签,需要指定ID属性</param>
        /// <param name="entity">贴入标签的实体,需要指定ID属性</param>
        /// <returns></returns>
        public List <SYSTagLogs> GetTagLogs <T>(SYSTag tagInfo, T entity) where T : Entity, new()
        {
            //long targetID = this.tagTargetBO[entity.TableAttribute.TableName].ID.Value;
            long targetObjectID = ALConvert.ToLong0(entity.Property.GetValue(entity.Property.TableAttribute.PrimaryKey));

            return(this.FindBySpecification(tagLogsBO.GetAll(new SYSTagLogs
            {
                TagID = tagInfo.ID,
                TagName = tagInfo.TagName,
                //标签日志暂时不区分数据表 TargetObject = targetID.ToString(),
                TargetObjectID = targetObjectID
            }.AsSpec()).ToList()));
        }
Exemple #6
0
        /// <summary>
        /// 将指定的标签项贴入多个实体
        /// </summary>
        /// <typeparam name="T">实体类型</typeparam>
        /// <param name="tagInfo">标签,需要指定ID属性</param>
        /// <param name="entity">要贴入标签的实体,需要指定ID属性</param>
        public ITag Apply <T>(SYSTag tagInfo, List <T> entity) where T : Entity, new()
        {
            List <SYSTagApply> tagApplyInfo = new List <SYSTagApply>();

            entity.ForEach(d =>
            {
                tagApplyInfo.Add(new SYSTagApply
                {
                    TagID          = tagInfo.ID,
                    TargetID       = tagTargetBO[d.Property.TableAttribute.TableName].ID,
                    TargetObjectID = ALConvert.ToLong(d.Property.GetValue(d.Property.TableAttribute.PrimaryKey))
                });
            });
            tagApplyBO.Save(tagApplyInfo);
            return(this);
        }
Exemple #7
0
 /// <summary>
 /// 保存指定的标签项
 /// </summary>
 /// <param name="tagInfo"></param>
 public void Save(SYSTag tagInfo)
 {
     tagBO.Save(tagInfo);
 }