/// <summary> /// 给文件添加元数据 /// </summary> /// <param name="metaValues">元数据属性值对象</param> /// <param name="fileId">Edoc2文件ID</param> /// <param name="metaTypeId">元数据类型ID</param> /// <param name="getAttrValue">元数据属性对应值的方法</param> /// <returns></returns> public static List <IEDoc2MetaObjType> AddFileMetaByMetaTypeId( object metaValues, int fileId, int metaTypeId, GetAttrValueDelegate getAttrValue) { try { IEDoc2File file; ApiManager.Api.DocumentManagement.GetFileById(fileId, out file); List <IEDoc2MetaAttr> metaAttrList; ApiManager.Api.MetaDataManagement.GetMetaAttrByTypeId(Token, metaTypeId, out metaAttrList); var metaValueList = new List <IEDoc2MetaValue>(); foreach (IEDoc2MetaAttr attr in metaAttrList) { var value = new EDoc2MetaValue(); value.AttrId = attr.AttrId; value.AttrPath = metaTypeId + "\\"; value.AttrValue = getAttrValue(metaValues, attr.AttrName); value.ObjId = file.FileLastVerId; value.ObjType = 3; metaValueList.Add(value); } IEDoc2MetaObjType metaObjType = new EDoc2MetaObjType(0, file.FileLastVerId, 3, metaTypeId, metaValueList); var edoc2MetaObjTypeList = new List <IEDoc2MetaObjType>(); edoc2MetaObjTypeList.Add(metaObjType); int lastVerId; file.CreateSysMetaData(Token, edoc2MetaObjTypeList, out lastVerId); file.OverlayPrevVersion(Token); return(edoc2MetaObjTypeList); } catch (Exception ex) { throw new Exception("AddFileMetaByMetaTypeId出现异常,exMessage=" + ex.Message); } }
private static List<IEDoc2MetaObjType> GetMetaObjTypeByStrMeta(List<IEDoc2MetaObjType> metaObjTypeList) { var edoc2MetaObjTypeList = new List<IEDoc2MetaObjType>(); foreach (IEDoc2MetaObjType oldMetaObjType in metaObjTypeList) { var metaValueList = new List<IEDoc2MetaValue>(); foreach (IEDoc2MetaValue oldMetaValue in oldMetaObjType.EDoc2MetaValueList) { IEDoc2MetaValue metaValue = new EDoc2MetaValue(); metaValue.AttrId = oldMetaValue.AttrId; metaValue.AttrPath = oldMetaValue.AttrPath; metaValue.AttrValue = oldMetaValue.AttrValue; metaValueList.Add(metaValue); } var metaObjType = new EDoc2MetaObjType(oldMetaObjType.ObjData, oldMetaObjType.ObjId, oldMetaObjType.ObjType, oldMetaObjType.TypeId, metaValueList); IEDoc2MetaObjType IMetaObjType = metaObjType; edoc2MetaObjTypeList.Add(IMetaObjType); } return edoc2MetaObjTypeList; }