public static SchemaObjectBase CreateObject(string schemaTypeString) { ObjectSchemaSettings settings = ObjectSchemaSettings.GetConfig(); ObjectSchemaConfigurationElement schemaElement = settings.Schemas[schemaTypeString]; (schemaElement != null).FalseThrow <NotSupportedException>("不支持的对象类型: {0}", schemaTypeString); SchemaObjectBase result = null; if (schemaElement.GetTypeInfo() == typeof(SCGenericObject)) { result = new SCGenericObject(schemaTypeString); } else { result = (SchemaObjectBase)schemaElement.CreateInstance(schemaTypeString); if (result.SchemaType != schemaTypeString) { throw new SchemaObjectErrorCreationException(string.Format("无法根据指定的SchemaType {0} 创建对应的类型", schemaTypeString)); } } return(result); }
public void LoadFromDataReader(IDataReader reader) { Dictionary <string, ObjectSchemaConfigurationElement> schemaElements = new Dictionary <string, ObjectSchemaConfigurationElement>(StringComparer.OrdinalIgnoreCase); ObjectSchemaSettings settings = ObjectSchemaSettings.GetConfig(); while (reader.Read()) { string schemaType = (string)reader["SchemaType"]; ObjectSchemaConfigurationElement schemaElement = null; if (schemaElements.TryGetValue(schemaType, out schemaElement) == false) { schemaElement = settings.Schemas[schemaType]; schemaElements.Add(schemaType, schemaElement); } if (schemaElement != null) { T obj = (T)schemaElement.CreateInstance(schemaType); obj.FromString((string)reader["Data"]); ORMapping.DataReaderToObject(reader, obj); if (this.ContainsKey(obj.ID) == false) { this.Add(obj); } } } }
protected override void InitFromConfigurationElement(ObjectSchemaConfigurationElementBase schemaConfig) { base.InitFromConfigurationElement(schemaConfig); ObjectSchemaConfigurationElement configElem = (ObjectSchemaConfigurationElement)schemaConfig; this.CodeNameKey = configElem.CodeNameKey; this.CodeNameValidationMethod = configElem.CodeNameValidationMethod; this.FullPathValidationMethod = configElem.FullPathValidationMethod; this.IsUsersContainer = configElem.IsUsersContainer; this.IsUsersContainerMember = configElem.IsUsersContainerMember; this.ToSchemaObjectSnapshot = configElem.ToSchemaObjectSnapshot; SchemaPropertyGroupSettings groupSettings = SchemaPropertyGroupSettings.GetConfig(); foreach (ObjectSchemaClassConfigurationElement schemaClass in configElem.Groups) { if (groupSettings.Groups.ContainsKey(schemaClass.GroupName)) { this.Properties.AppendPropertiesFromConfiguration(groupSettings.Groups[schemaClass.GroupName].AllProperties); } } this.Operations.LoadFromConfiguration(configElem.Operations); this.PermissionSet.LoadFromConfiguration(configElem.PermissionSet); }
private void CodeNameValidationMethod(string strToValue, SchemaObjectBase doValidateObj, string key, ValidationResults validateResults) { bool result = CodeNameUniqueValidatorFacade.ValidateCodeName(strToValue, CodeNameUniqueValidatorFacade.GetScopeSchemas2(doValidateObj.Schema.CodeNameKey).ToArray(), doValidateObj.ID, this.includingDeleted == false, false, DateTime.MinValue); if (result == false) { ObjectSchemaConfigurationElement config = ObjectSchemaSettings.GetConfig().Schemas[doValidateObj.SchemaType]; RecordValidationResult(validateResults, string.Format(this.MessageTemplate, string.IsNullOrEmpty(config.Description) ? config.Description : config.Name, doValidateObj.Properties["Name"].StringValue, doValidateObj.ID), doValidateObj, key); } }
protected string SchemaTypeToString(string schemaName) { string result = schemaName; ObjectSchemaConfigurationElement schemaElement = ObjectSchemaSettings.GetConfig().Schemas[schemaName]; if (schemaElement != null && schemaElement.Description.IsNotEmpty()) { result = schemaElement.Description; } return(result); }
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; } } } }
public SchemaInfo(ObjectSchemaConfigurationElement configElem) { if (configElem != null) { this.Name = configElem.Name; this.Description = configElem.Description; this.Category = configElem.Category; this.CodeNameKey = configElem.CodeNameKey; this.CodeNameValidationMethod = configElem.CodeNameValidationMethod; this.FullPathValidationMethod = configElem.FullPathValidationMethod; this.SortOrder = configElem.SortOrder; this.TableName = configElem.TableName; this.SnapshotTable = configElem.SnapshotTable; this.IsRelation = configElem.IsRelation; this.IsUsersContainer = configElem.IsUsersContainer; this.IsUsersContainerMember = configElem.IsUsersContainerMember; this.ToSchemaObjectSnapshot = configElem.ToSchemaObjectSnapshot; } }
public static void Output(this ObjectSchemaConfigurationElement schemaConfig, TextWriter writer, int indent = 0) { string indentChars = new string('\t', indent); writer.WriteLine("{0}Schema Name={1}", indentChars, schemaConfig.Name); if (schemaConfig.Groups.Count > 0) { indent++; WriteLine(writer, "Begin Schemas", indent); indent++; schemaConfig.Groups.ForEach <ObjectSchemaClassConfigurationElement>(p => p.Output(writer, indent)); indent--; WriteLine(writer, "End Schemas", indent); } }
protected override void DoValidate(object objectToValidate, object currentObject, string key, Validation.ValidationResults validateResults) { DESchemaObjectBase doValidateObj = currentObject as DESchemaObjectBase; if (doValidateObj != null) { string strValue = objectToValidate.ToString(); if (strValue.IsNotEmpty()) { bool exist = DEDynamicEntityAdapter.Instance.ExistByCodeName(strValue, DateTime.MinValue); //不存在 if (exist == false) { ObjectSchemaConfigurationElement config = ObjectSchemaSettings.GetConfig().Schemas[doValidateObj.SchemaType]; RecordValidationResult(validateResults, string.Format(this.MessageTemplate, string.IsNullOrEmpty(config.Description) ? config.Description : config.Name, doValidateObj.Properties["Name"].StringValue, doValidateObj.ID), doValidateObj, key); } } } }
/// <summary> /// 根据模式类型,条件和时间点载入视图 /// </summary> /// <param name="schemaType">模式类型</param> /// <param name="inBuilder">条件</param> /// <param name="timePoint"></param> /// <returns></returns> public DataView Load(string schemaType, IConnectiveSqlClause inBuilder, DateTime timePoint) { ObjectSchemaConfigurationElement schemaElem = ObjectSchemaSettings.GetConfig().Schemas[schemaType]; (schemaElem != null).FalseThrow("不能找到SchemaType为{0}的定义", schemaType); var whereBuilder = VersionStrategyQuerySqlBuilder.Instance.TimePointToBuilder(timePoint); ConnectiveSqlClauseCollection connectiveBuilder = new ConnectiveSqlClauseCollection(inBuilder, whereBuilder); DataView result = null; VersionedObjectAdapterHelper.Instance.FillData(schemaElem.SnapshotTable, connectiveBuilder, this.GetConnectionName(), view => { result = view; }); return(result); }
public void AclPermissionsDefineTest() { ObjectSchemaConfigurationElement element = ObjectSchemaSettings.GetConfig().Schemas["Applications"]; Assert.IsNotNull(element); SCAclPermissionItemCollection permissionDefine = new SCAclPermissionItemCollection(element.PermissionSet); Console.WriteLine("Application permissions:"); permissionDefine.ForEach(pd => pd.Output(Console.Out)); element = ObjectSchemaSettings.GetConfig().Schemas["Organizations"]; Assert.IsNotNull(element); permissionDefine = new SCAclPermissionItemCollection(element.PermissionSet); Console.WriteLine("Organization permissions:"); permissionDefine.ForEach(pd => pd.Output(Console.Out)); }
protected override void DoValidate(object objectToValidate, object currentObject, string key, ValidationResults validateResults) { bool isValid = false; var types = SchemaInfo.FilterByCategory("AdminScopeItems"); foreach (var item in types) { if (item.Name.Equals(objectToValidate)) { isValid = true; break; } } if (isValid == false) { SchemaObjectBase doValidateObj = (SchemaObjectBase)currentObject; ObjectSchemaConfigurationElement config = ObjectSchemaSettings.GetConfig().Schemas[doValidateObj.SchemaType]; this.RecordValidationResult(validateResults, string.Format(this.MessageTemplate, string.IsNullOrEmpty(config.Description) ? config.Description : config.Name, doValidateObj.Properties["Name"].StringValue, doValidateObj.ID), doValidateObj, key); } }
public static DESchemaObjectBase CreateObject(string schemaTypeString) { ObjectSchemaSettings settings = ObjectSchemaSettings.GetConfig(); ObjectSchemaConfigurationElement schemaElement = settings.Schemas[schemaTypeString]; (schemaElement != null).FalseThrow <NotSupportedException>("不支持的对象类型: {0}", schemaTypeString); DESchemaObjectBase result = null; if (schemaElement.GetTypeInfo() == typeof(DEGenericObject)) { result = new DEGenericObject(schemaTypeString); } else { result = (DESchemaObjectBase)schemaElement.CreateInstance(); } return(result); }
public void LoadFromDataView(DataView view, Action <DataRow, T> action) { Dictionary <string, ObjectSchemaConfigurationElement> schemaElements = new Dictionary <string, ObjectSchemaConfigurationElement>(StringComparer.OrdinalIgnoreCase); ObjectSchemaSettings settings = ObjectSchemaSettings.GetConfig(); foreach (DataRowView drv in view) { string schemaType = (string)drv["SchemaType"]; ObjectSchemaConfigurationElement schemaElement = null; if (schemaElements.TryGetValue(schemaType, out schemaElement) == false) { schemaElement = settings.Schemas[schemaType]; schemaElements.Add(schemaType, schemaElement); } if (schemaElement != null) { T obj = (T)schemaElement.CreateInstance(schemaType); obj.FromString((string)drv["Data"]); ORMapping.DataRowToObject(drv.Row, obj); if (action != null) { action(drv.Row, obj); } if (this.ContainsKey(obj.ID) == false) { this.Add(obj); } } } }
public SchemaDefine(ObjectSchemaConfigurationElement schemaConfig) { schemaConfig.NullCheck("schemaConfig"); InitFromConfigurationElement(schemaConfig); }
public DESchemaDefine(ObjectSchemaConfigurationElement schemaConfig) { schemaConfig.NullCheck("schemaConfig"); InitFromConfigurationElement(schemaConfig); }