Exemplo n.º 1
0
        protected override void DoValidate(Validation.ValidationResults validationResults)
        {
            base.DoValidate(validationResults);

            if (this.targetRelation.Status == SchemaObjectStatus.Normal)
            {
                ValidationResults currentResults = this.targetRelation.Validate();

                if (targetRelation.ID == targetRelation.ParentID)
                {
                    validationResults.AddResult(new ValidationResult("关系错误,不能是自身关联的", this.targetRelation, "", "", null)
                    {
                    });
                }

                foreach (ValidationResult result in currentResults)
                {
                    validationResults.AddResult(result);
                }
            }

            string schemaID = ((AdminUnit)this.Data).AUSchemaID;

            if (this.inputParent != null && this.inputParent.AUSchemaID != schemaID)
            {
                validationResults.AddResult(new ValidationResult("校验父对象管理架构与子对象管理架构不同", this.Data, "AUSchemaID", "", new Validators.AUSchemaIDValidator()));
            }
        }
Exemplo n.º 2
0
        protected override void DoValidate(Validation.ValidationResults validationResults)
        {
            base.DoValidate(validationResults);

            if (this.Relation.Status == SchemaObjectStatus.Normal)
            {
                ValidationResults currentResults = this.Relation.Validate();

                foreach (ValidationResult result in currentResults)
                {
                    validationResults.AddResult(result);
                }
            }
        }
Exemplo n.º 3
0
        internal static async Task LogMethodTestResults(Validation.MethodDefinition method, IServiceAccount account, Validation.ValidationResults results)
        {
            foreach (var scenario in results.Results)
            {
                if (scenario.Outcome == ValidationOutcome.None)
                {
                    continue;
                }

                StringBuilder stdout = new StringBuilder();

                string message = null;
                if (scenario.Errors.Count > 0)
                {
                    stdout.AppendFormat("Scenario: {0}", scenario.Name);
                    foreach (var error in scenario.Errors)
                    {
                        stdout.AppendLine(error.ErrorText);

                        if (error.IsError && message == null)
                        {
                            message = error.ErrorText.FirstLineOnly();
                        }
                    }

                    stdout.AppendFormat(
                        "Scenario finished with outcome: {0}. Duration: {1}",
                        scenario.Outcome,
                        scenario.Duration);
                }

                string testName = string.Format(
                    "{0}: {1} [{2}]",
                    method.Identifier,
                    scenario.Name,
                    account.Name);

                string      filename = method.SourceFile.DisplayName;
                TestOutcome outcome  = ToTestOutcome(scenario.Outcome);

                await BuildWorkerApi.RecordTestAsync(
                    testName,
                    TestFrameworkName,
                    outcome : outcome,
                    durationInMilliseconds : (long)scenario.Duration.TotalMilliseconds,
                    errorMessage : message ?? scenario.Outcome.ToString(),
                    filename : filename,
                    stdOut : stdout.ToString());
            }
        }
 protected override void DoValidate(Validation.ValidationResults validationResults)
 {
     base.DoValidate(validationResults);
 }
        /// <summary>
        /// 验证实体实例的值得类型是否合法
        /// </summary>
        /// <param name="objectToValidate"></param>
        /// <param name="currentObject"></param>
        /// <param name="key"></param>
        /// <param name="validateResults"></param>
        protected override void DoValidate(object objectToValidate, object currentObject, string key, Validation.ValidationResults validateResults)
        {
            DEEntityInstance instanceData = objectToValidate as DEEntityInstance;

            instanceData.Fields.ForEach(f =>
            {
                //字段的值
                object fieldValue = f.GetRealValue();

                if (f.Definition.FieldType == Enums.FieldTypeEnum.Collection)
                {
                    DEEntityInstanceBaseCollection childEntities = f.GetRealValue() as DEEntityInstanceBaseCollection;
                    if (fieldValue is string)
                    {
                        //"实体实例'{0}'(实体的ID:{1})的字段'{2}'长度没有通过验证"
                        RecordValidationResult(validateResults,
                                               string.Format(this.MessageTemplate, f.Definition.ID),
                                               instanceData,
                                               key);
                    }
                    childEntities.ForEach(ce =>
                    {
                        ce.Validate();
                    });
                }
                else
                {
                    //添加验证,调用值转换函数
                    if (!IsOk(f.Definition.FieldType.ToString(), f.StringValue))
                    {
                        RecordValidationResult(validateResults,
                                               string.Format(this.MessageTemplate, f.Definition.ID),
                                               instanceData,
                                               key);
                    }
                    //if (f.StringValue is string && f.Definition.FieldType != Enums.FieldTypeEnum.String)
                    //{
                    //    RecordValidationResult(validateResults,
                    //        string.Format(this.MessageTemplate, instanceData.Name, instanceData.ID, f.Definition.Name),
                    //        instanceData,
                    //        key);
                    //}
                }
            });
        }
        protected override void DoValidate(object objectToValidate, object currentObject, string key, Validation.ValidationResults validateResults)
        {
            DEEntityInstance instanceData = objectToValidate as DEEntityInstance;

            instanceData.Fields.ForEach(f =>
            {
                if (f.Definition.FieldType == Enums.FieldTypeEnum.Collection)
                {
                    DEEntityInstanceBaseCollection childEntities = f.GetRealValue() as DEEntityInstanceBaseCollection;
                    if (childEntities.Count > f.Definition.Length)
                    {
                        //"实体实例'{0}'(实体的ID:{1})的字段'{2}'长度没有通过验证"
                        RecordValidationResult(validateResults,
                                               string.Format(this.MessageTemplate, f.Definition.ID),
                                               instanceData,
                                               key);
                    }
                    childEntities.ForEach(ce =>
                    {
                        ce.Validate();
                    });
                }
                else
                {
                    if ((((f.Definition.FieldType == Enums.FieldTypeEnum.Bool) && (f.Definition.Length != 1)) ||
                         ((f.Definition.FieldType != Enums.FieldTypeEnum.Bool) && (f.StringValue.Length > f.Definition.Length))
                         ) && (f.Definition.FieldType != Enums.FieldTypeEnum.DateTime)
                        )
                    {
                        RecordValidationResult(validateResults,
                                               string.Format(this.MessageTemplate, f.Definition.ID),
                                               instanceData,
                                               key);
                    }
                }
            });
        }
Exemplo n.º 7
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);
                    }
                }
            }
        }