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())); } }
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); } } }
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); } } }); }
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); } } } }