Exemplo n.º 1
0
        /// <summary>
        /// 查看给定元素的本体元素数据模式
        /// </summary>
        /// <param name="element"></param>
        /// <returns></returns>
        public ElementDataSchema GetElementDataSchema(ElementDescriptor element)
        {
            if (element == null)
            {
                throw new ArgumentNullException("element");
            }
            ElementDataSchema dataSchema;

            if (ElementDataSchemaDic.TryGetValue(element, out dataSchema))
            {
                return(dataSchema);
            }
            else
            {
                var           db = this.GetEntityDb(element.Ontology);
                DbTableColumn column;
                string        columnId = string.Format("[{0}][{1}][{2}]", element.Ontology.Ontology.EntitySchemaName, element.Ontology.Ontology.EntityTableName, element.Element.FieldCode);
                if (!element.Host.Rdbs.DbTableColumns.TryGetDbTableColumn(db, columnId, out column))
                {
                    var msg = "实体库中不存在" + columnId + "列";
                    element.Host.LoggingService.Error(msg);
                    return(null);
                }
                dataSchema = new ElementDataSchema(column);
                ElementDataSchemaDic.Add(element, dataSchema);
                return(dataSchema);
            }
        }
Exemplo n.º 2
0
        public void ValidateRequestData(Dictionary <string, string[]> elementDatas)
        {
            foreach (string key in elementDatas.Keys)
            {
                string[] value = elementDatas[key];

                ElementDataSchema eds = this.pageSchema.ElementDatas.FindItem(key);
                if (eds == null)
                {
                    continue;
                }
                if (eds.Validation == null)
                {
                    continue;
                }
                if (eds.Validation.Validators.Count > 0)
                {
                    string errHint = "";
                    if (value == null || value.Length < 1)
                    {
                        if (!Validation.ValidatorFactory.InvokeValid(eds.Validation, null, checkRequestValueVar, out errHint))
                        {
                            throw new Validation.EValidateException(errHint);
                        }
                    }
                    for (int i = 0; i < value.Length; i++)
                    {
                        if (!Validation.ValidatorFactory.InvokeValid(eds.Validation, value[i], checkRequestValueVar, out errHint))
                        {
                            throw new Validation.EValidateException(errHint);
                        }
                    }
                }
            }
        }
Exemplo n.º 3
0
 private void ValidateElement(ElementDataSchema eds, string[] value)
 {
     if (eds.Validation.Validators.Count > 0)
     {
         string errHint = "";
         if (value == null || value.Length < 1)
         {
             if (!Validation.ValidatorFactory.InvokeValid(eds.Validation, null, CheckValueVar, out errHint))
             {
                 throw new Validation.EValidateException(errHint);
             }
         }
         for (int i = 0; i < value.Length; i++)
         {
             if (!Validation.ValidatorFactory.InvokeValid(eds.Validation, value[i], CheckValueVar, out errHint))
             {
                 throw new Validation.EValidateException(errHint);
             }
         }
     }
 }
Exemplo n.º 4
0
 /// <summary>
 /// 查看给定元素的本体元素数据模式
 /// </summary>
 /// <param name="element"></param>
 /// <returns></returns>
 public ElementDataSchema GetElementDataSchema(ElementDescriptor element)
 {
     if (element == null)
     {
         throw new ArgumentNullException("element");
     }
     ElementDataSchema dataSchema;
     if (ElementDataSchemaDic.TryGetValue(element, out dataSchema))
     {
         return dataSchema;
     }
     else
     {
         var db = this.GetEntityDb(element.Ontology);
         DbTableColumn column;
         string columnId = string.Format("[{0}][{1}][{2}]", element.Ontology.Ontology.EntitySchemaName, element.Ontology.Ontology.EntityTableName, element.Element.FieldCode);
         if (!element.Host.Rdbs.DbTableColumns.TryGetDbTableColumn(db, columnId, out column))
         {
             var msg = "实体库中不存在" + columnId + "列";
             element.Host.LoggingService.Error(msg);
             return null;
         }
         dataSchema = new ElementDataSchema(column);
         ElementDataSchemaDic.Add(element, dataSchema);
         return dataSchema;
     }
 }