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); }
///// <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); }
/// <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); }
/// <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); }
/// <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())); }
/// <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); }
/// <summary> /// 保存指定的标签项 /// </summary> /// <param name="tagInfo"></param> public void Save(SYSTag tagInfo) { tagBO.Save(tagInfo); }