internal static MfContact GetContactById(Vault mfVault, MetadataAliases aliases, int contactId) { var objAlias = aliases.Objects["ObjContacts"]; var classAlias = objAlias.ClassDict["ClassContacts"]; var typeId = MfAlias.GetObjType(mfVault, objAlias.Alias); var objId = new ObjID(); objId.SetIDs(typeId, contactId); var objVer = mfVault.ObjectOperations.GetLatestObjVer(objId, false); var accountPDId = MfAlias.GetPropDef(mfVault, classAlias.PropDict["PropAccount"]); var accountTV = mfVault.ObjectPropertyOperations.GetProperty(objVer, accountPDId).Value; var userId = accountTV.GetLookupID(); var contact = new MfContact { UserId = userId, InternalId = objVer.ID, RoleAlias = classAlias.PropDict["PropProjectRole"] }; var roleId = MfAlias.GetPropDef(mfVault, contact.RoleAlias);//mfVault.UserGroupOperations.GetUserGroupIDByAlias(contact.RoleAlias); contact.RoleName = mfVault.ObjectPropertyOperations.GetProperty(objVer, roleId).GetValueAsLocalizedText(); if (!String.IsNullOrEmpty(objAlias.Owner)) { var partTypeId = MfAlias.GetObjType(mfVault, objAlias.Owner); var partType = mfVault.ObjectTypeOperations.GetObjectType(partTypeId); var partOwnerPropId = partType.OwnerPropertyDef; var partyTV = mfVault.ObjectPropertyOperations.GetProperty(objVer, partOwnerPropId).Value; contact.PartName = partyTV.DisplayValue; } return(contact); }
internal static void Create <T>(Vault vault, MetadataAliases aliases, T entity) where T : InternalEntity { var projObj = GetMFObject(vault, aliases, entity); Create(vault, projObj); entity.InternalId = projObj.Id; }
public void Create <T>(MFilesVault vault, MetadataAliases aliases, T entity) where T : InternalEntity { // Writelog("in mfs.mfos.create 11"); var projObj = GetMFObject(vault, aliases, entity); // Writelog("in mfs.mfos.create 22"); Create(vault, projObj); // Writelog("in mfs.mfos.create 33"); entity.InternalId = projObj.Id; }
public MfContact GetContact(MFilesVault vault, MetadataAliases aliases, string userName) { var mfVault = MFServerUtility.GetVault(vault); var userId = MfUserUtils.GetUserAccount(mfVault, userName); if (userId == null) { return(null); } var uid = userId.Value; //userid return(GetContactByUserId(mfVault, aliases, uid)); }
internal static MfContact GetContactByUserId(Vault mfVault, MetadataAliases aliases, int userId) { var objAlias = aliases.Objects["ObjContacts"]; var classAlias = objAlias.ClassDict["ClassContacts"]; var typeId = MfAlias.GetObjType(mfVault, objAlias.Alias); var classId = MfAlias.GetObjectClass(mfVault, classAlias.Alias); var scs = new SearchConditions(); MFSearchConditionUtils.AddBaseConditions(scs, typeId, classId); var userPropId = MfAlias.GetPropDef(mfVault, classAlias.PropDict["PropAccount"]); scs.Add(-1, MFSearchConditionUtils.Property(MFConditionType.MFConditionTypeEqual, userPropId, MFDataType.MFDatatypeLookup, userId)); var res = mfVault.ObjectSearchOperations.SearchForObjectsByConditions(scs, MFSearchFlags.MFSearchFlagNone, false); if (res.Count != 1) { return(null); } var obj = res[1]; var contact = new MfContact { UserId = userId, InternalId = obj.ObjVer.ID, RoleAlias = classAlias.PropDict["PropProjectRole"] }; var roleId = MfAlias.GetPropDef(mfVault, contact.RoleAlias);//mfVault.UserGroupOperations.GetUserGroupIDByAlias(contact.RoleAlias); contact.RoleName = mfVault.ObjectPropertyOperations.GetProperty(obj.ObjVer, roleId).GetValueAsLocalizedText(); if (!String.IsNullOrEmpty(objAlias.Owner)) { var partTypeId = MfAlias.GetObjType(mfVault, objAlias.Owner); var partType = mfVault.ObjectTypeOperations.GetObjectType(partTypeId); var partOwnerPropId = partType.OwnerPropertyDef; var partyTV = mfVault.ObjectPropertyOperations.GetProperty(obj.ObjVer, partOwnerPropId).Value; contact.PartName = partyTV.DisplayValue; } return(contact); }
internal static MFObject GetMFObject <T>(Vault mfVault, MetadataAliases aliases, T entity) where T : InternalEntity { if (entity is Project) { //var config = VaultConfig.GetConfigFromString(vault.Template.MetadataJson); var projObj = aliases.GetMfProject(entity as Project);// config.GetMfProjectObject(entity as Project); return(projObj); } if (entity is MfContact) { var contactObj = aliases.GetMfContact(mfVault, entity as MfContact); return(contactObj); } return(null); }
public static MFObjectDef GetMfObjDef(this MetadataAliases aliases, string typeKey, string classKey) { var od = new MFObjectDef(); var contact = aliases.Objects[typeKey]; od.TypeAlias = contact.Alias; var contactClass = contact.ClassDict[classKey]; od.ClassAlias = contactClass.Alias; foreach (var p in contactClass.PropDict) { od.Properties.Add(p); } return(od); }
internal static int GetPartyId(this MetadataAliases aliases, Vault vault, string partyName) { var typeId = MfAlias.GetObjType(vault, aliases.Objects["ObjParticipant"].Alias); var scs = new SearchConditions(); scs.Add(-1, MFSearchConditionUtils.ObjType(typeId)); scs.Add(-1, MFSearchConditionUtils.Deleted(false)); var res = vault.ObjectSearchOperations.SearchForObjectsByConditions(scs, MFSearchFlags.MFSearchFlagNone, false); foreach (ObjectVersion ov in res) { if (ov.Title == partyName) { return(ov.ObjVer.ID); } } return(-1); }
public static MFObject GetMfProject(this MetadataAliases aliases, Project proj) { var od = GetMfObjDef(aliases, "ObjProject", "ClassProject"); var obj = new MFObject(od) { Id = proj.InternalId }; var projClass = aliases.Objects["ObjProject"].ClassDict["ClassProject"]; //projClass.PropDict[ obj.Properties.Add("PropProjName", proj.Name); obj.Properties.Add("PropDescription", proj.Description); obj.Properties.Add("PropStartDate", proj.StartDateUtc); obj.Properties.Add("MFBuiltInPropertyDefDeadline", proj.EndDateUtc); if (projClass.PropDict.ContainsKey("PropProjNum")) { obj.Properties.Add("PropProjNum", proj.Number); } if (projClass.PropDict.ContainsKey("PropProjPhase")) { obj.Properties.Add("PropProjPhase", proj.StatusId); } if (projClass.PropDict.ContainsKey("PropProprietorUnit")) { obj.Properties.Add("PropProprietorUnit", proj.OwnerUnit); } if (projClass.PropDict.ContainsKey("PropDesignUnit")) { obj.Properties.Add("PropDesignUnit", proj.DesignUnit); } if (projClass.PropDict.ContainsKey("PropBuilderUnit")) { obj.Properties.Add("PropBuilderUnit", proj.ConstructionUnit); } if (projClass.PropDict.ContainsKey("PropSupervisorUnit")) { obj.Properties.Add("PropSupervisorUnit", proj.SupervisionUnit); } //obj.Properties.Add(projClass.PropDict["PropProjName"], proj.Name); return(obj); }
private static int GetContactAccount(Vault vault, MetadataAliases aliases, int contactId) { var objId = new ObjID(); var objAlias = aliases.Objects["ObjContacts"]; var objType = MfAlias.GetObjType(vault, objAlias.Alias); var classAlias = objAlias.ClassDict["ClassContacts"]; //PropAccount objId.SetIDs(objType, contactId); var objVer = vault.ObjectOperations.GetLatestObjVer(objId, false); var propId = MfAlias.GetPropDef(vault, classAlias.PropDict["PropAccount"]); try { var tv = vault.ObjectPropertyOperations.GetProperty(objVer, propId).Value; return(tv.GetLookupID()); } catch (Exception ex) { var err = "获取登录账户失败: " + objType + " # " + contactId + " # " + ex.Message; Log.Error(err, ex); throw; } }
public MfContact GetContactByContactId(MFilesVault vault, MetadataAliases aliases, int contactId) { var mfVault = MFServerUtility.GetVault(vault); return(GetContactById(mfVault, aliases, contactId)); }
public MFProjectParty GetParty(MFilesVault vault, string partyName, MetadataAliases aliases, int?currentUserId = null) { var mfVault = MFServerUtility.GetVault(vault); var partyObj = aliases.Objects["ObjParticipant"]; var partyClass = partyObj.ClassDict["ClassParticipant"]; var typeId = MfAlias.GetObjType(mfVault, partyObj.Alias); var classId = MfAlias.GetObjectClass(mfVault, partyClass.Alias); var scs = new SearchConditions(); MFSearchConditionUtils.AddBaseConditions(scs, typeId, classId); var namePropId = MfAlias.GetPropDef(mfVault, partyClass.PropDict["PropParticipantName"]); var nameSC = MFSearchConditionUtils.Property(MFConditionType.MFConditionTypeEqual, namePropId, MFDataType.MFDatatypeText, partyName); scs.Add(-1, nameSC); var res = mfVault.ObjectSearchOperations.SearchForObjectsByConditions(scs, MFSearchFlags.MFSearchFlagNone, false); if (res.Count != 1) { return(null); } var party = new MFProjectParty { Name = partyName }; var obj = res[1]; party.InternalId = obj.ObjVer.ID; var managerPropId = MfAlias.GetPropDef(mfVault, partyClass.PropDict["PropProjPM"]); var managerTV = mfVault.ObjectPropertyOperations.GetProperty(obj.ObjVer, managerPropId).Value; if (!managerTV.IsNULL() && !managerTV.IsUninitialized()) { party.ManagerCount = 1; var contactId = managerTV.GetLookupID(); var userId = GetContactAccount(mfVault, aliases, contactId); if (currentUserId != null && userId == currentUserId.Value) { party.IsCurrentManager = true; } } var vmPropId = MfAlias.GetPropDef(mfVault, partyClass.PropDict["PropProjVicePMs"]); var vmTV = mfVault.ObjectPropertyOperations.GetProperty(obj.ObjVer, vmPropId).Value; if (!vmTV.IsNULL() && !vmTV.IsUninitialized()) { var lkps = vmTV.GetValueAsLookups(); party.ViceManagerCount = lkps.Count; if (currentUserId != null && !party.IsCurrentManager) { for (var i = 1; i <= lkps.Count; i++) { var contactId = lkps[i].Item; var userId = GetContactAccount(mfVault, aliases, contactId); if (userId == currentUserId.Value) { party.IsCurrentViceManager = true; break; } } } } var mmPropId = MfAlias.GetPropDef(mfVault, partyClass.PropDict["PropMembers"]); var mmTV = mfVault.ObjectPropertyOperations.GetProperty(obj.ObjVer, mmPropId).Value; if (!mmTV.IsNULL() && !mmTV.IsUninitialized()) { var lkps = mmTV.GetValueAsLookups(); party.MemberCount = lkps.Count; if (currentUserId != null && !party.IsCurrentViceManager && !party.IsCurrentManager) { for (var i = 1; i <= lkps.Count; i++) { var contactId = lkps[i].Item; var userId = GetContactAccount(mfVault, aliases, contactId); if (userId == currentUserId.Value) { party.IsCurrentMember = true; break; } } } } return(party); }
public MFObject GetMFObject(MFilesVault vault, MetadataAliases aliases, InternalEntity entity) { return(GetMFObject <InternalEntity>(vault, aliases, entity)); }
protected static MFProjectParty GetMfParty(MFilesVault vault, MetadataAliases aliases, string partyName, IMFObjectService mfilesObjService, int?currentUserId = null) { return(mfilesObjService.GetParty(vault, partyName, aliases, currentUserId)); }
public static MFObject GetMfContact(this MetadataAliases aliases, Vault vault, MfContact contact) { var user = contact.User; var loginAccount = contact.Id; var od = GetMfObjDef(aliases, "ObjContacts", "ClassContacts"); var obj = new MFObject(od) { Id = contact.InternalId }; var contactClass = aliases.Objects["ObjContacts"].ClassDict["ClassContacts"]; if (loginAccount > 0) { obj.Properties.Add(contactClass.PropDict["PropAccount"], loginAccount); } if (!String.IsNullOrEmpty(contact.RoleAlias)) { var roleId = MfAlias.GetUsergroup(vault, contact.RoleAlias); obj.Properties.Add(contactClass.PropDict["PropProjectRole"], roleId); } if (user != null) //contactClass.PropDict[ { var name = String.IsNullOrEmpty(user.FullName) ? user.UserName : user.FullName; obj.Properties.Add("PropLinkmanName", name); obj.Properties.Add("PropTelPhone", user.Phone ?? ""); obj.Properties.Add("PropEmail", user.Email); if (contactClass.PropDict.ContainsKey("PropQQ")) { obj.Properties.Add("PropQQ", user.QQ ?? ""); } if (contactClass.PropDict.ContainsKey("PropUnit")) { var company = String.Empty; if (user.Company != null) { company = user.Company.Name; } obj.Properties.Add("PropUnit", company); } if (contactClass.PropDict.ContainsKey("PropDepartment")) { var department = String.Empty; if (user.Department != null) { department = user.Department.Name; } obj.Properties.Add("PropDepartment", department); } if (contactClass.PropDict.ContainsKey("PropPosition")) { obj.Properties.Add("PropPosition", user.Post ?? ""); } if (contactClass.PropDict.ContainsKey("PropRemarks")) { obj.Properties.Add("PropRemarks", user.Description); } } if (contactClass.PropDict.ContainsKey("PropUserStatus")) { obj.Properties.Add("PropUserStatus", contact.Disabled); } if (contactClass.PropDict.ContainsKey("PropIsProjCreator")) { obj.Properties.Add("PropIsProjCreator", contact.IsCreator); } if (!String.IsNullOrEmpty(contact.PartName)) { var ownerAlias = aliases.Objects["ObjContacts"].Owner; if (ownerAlias != null) { var objTypeId = MfAlias.GetObjType(vault, ownerAlias); var objType = vault.ObjectTypeOperations.GetObjectType(objTypeId); var pwnerPropertyId = objType.OwnerPropertyDef; //所属属性 obj.Properties.Add(pwnerPropertyId.ToString(), GetPartyId(aliases, vault, contact.PartName)); od.Properties.Add(pwnerPropertyId.ToString(), pwnerPropertyId.ToString()); } } return(obj); }
protected MfContact GetMfContactByUserId(MFilesVault vault, MetadataAliases aliases, int userId) { return(_mfilesObjService.GetContactByUserId(vault, aliases, userId)); }
public void Update <T>(MFilesVault vault, MetadataAliases aliases, T entity) where T : InternalEntity { var obj = GetMFObject(vault, aliases, entity); Update(vault, obj); }
protected static void UpdateMfObj <T>(MFilesVault vault, MetadataAliases aliases, T entity, IMFObjectService mfilesObjService) where T : InternalEntity { mfilesObjService.Update(vault, aliases, entity); }