Exemplo n.º 1
0
        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);
                    }
                }
            }
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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);
            }
        }
Exemplo n.º 5
0
        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;
                    }
                }
            }
        }
Exemplo n.º 7
0
        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;
                    }
                }
            }
        }
Exemplo n.º 8
0
 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;
     }
 }
Exemplo n.º 9
0
        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);
            }
        }
Exemplo n.º 10
0
        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);
                    }
                }
            }
        }
Exemplo n.º 11
0
        /// <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);
        }
Exemplo n.º 12
0
        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));
        }
Exemplo n.º 13
0
        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);
            }
        }
Exemplo n.º 14
0
        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);
        }
Exemplo n.º 15
0
        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);
                    }
                }
            }
        }
Exemplo n.º 16
0
		public SchemaDefine(ObjectSchemaConfigurationElement schemaConfig)
		{
			schemaConfig.NullCheck("schemaConfig");

			InitFromConfigurationElement(schemaConfig);
		}
Exemplo n.º 17
0
        public DESchemaDefine(ObjectSchemaConfigurationElement schemaConfig)
        {
            schemaConfig.NullCheck("schemaConfig");

            InitFromConfigurationElement(schemaConfig);
        }