public static SchemaObjectBase ToSchemaObject(this ClientSchemaObjectBase clientObj, bool validateID) { clientObj.NullCheck("clientObj"); clientObj.SchemaType.CheckStringIsNullOrEmpty("SchemaType"); var config = SchemaDefine.GetSchemaConfig(clientObj.SchemaType); SchemaObjectBase scObj = (SchemaObjectBase)config.CreateInstance(); scObj.ID = clientObj.ID; if (validateID && clientObj.ID.IsNullOrEmpty()) { throw new InvalidOperationException("客户端对象ID不存在"); } scObj.Status = (SchemaObjectStatus)clientObj.Status; scObj.CreateDate = clientObj.CreateDate; scObj.VersionStartTime = clientObj.VersionStartTime; scObj.VersionEndTime = clientObj.VersionEndTime; scObj.Properties.CopyFrom(clientObj.Properties); if (clientObj.Creator != null) { scObj.Creator = (IUser)OguBase.CreateWrapperObject(clientObj.Creator.ID, SchemaType.Users); } return(scObj); }
public void Prepare(VersionedSchemaObjectBase obj) { if (obj is SCMemberRelation) { SCMemberRelation mr = (SCMemberRelation)obj; ObjectSchemaConfigurationElement containerConfig = SchemaDefine.GetSchemaConfig(mr.ContainerSchemaType); ObjectSchemaConfigurationElement memberConfig = SchemaDefine.GetSchemaConfig(mr.MemberSchemaType); if (containerConfig != null && memberConfig != null) { if (containerConfig.IsUsersContainer && memberConfig.IsUsersContainerMember) { SCActionContext.Current.Context["UserAndContainerSnapshotRelation"] = mr; } } } }
public void Prepare(VersionedSchemaObjectBase obj) { if (obj is SCMemberRelation) { SCMemberRelation mr = (SCMemberRelation)obj; ObjectSchemaConfigurationElement containerConfig = SchemaDefine.GetSchemaConfig(mr.ContainerSchemaType); ObjectSchemaConfigurationElement memberConfig = SchemaDefine.GetSchemaConfig(mr.MemberSchemaType); if (containerConfig != null && memberConfig != null) { if (containerConfig.Name == "AUAdminScopes" && memberConfig.Category == "AUScopeItems") { SCActionContext.Current.Context["ItemAndContainerSnapshotRelation"] = mr; } } } }
protected string GetSchemaName(string key) { return(SchemaDefine.GetSchemaConfig(key).Description); }