private static String BuildErrorMessage(DataMapValidation validation) { return "Datamap is invalid. One or more errors have been detected with the current datamap schema (see details below). " + Environment.NewLine + validation.BuildValidationErrorMessage(true); }
internal void Validate(DataMapValidation validation) { validation.PropertyMapList.AddRange(this.CreateDataMapValidationPropertyList()); validation.IsCurrentValid = ((this.Options.ValidateKeys == false) || (this.DataMap.HasKeyDefined())) && this.AllSourcePropertiesMapped() && validation.PropertyMapList.IsValid(); validation.Description = String.Format( "'{0}'->'{1}' ({2})", this.DataMap.SourceType.FullName, this.DataMap.TargetType.FullName, validation.IsCurrentValid ? "Valid" : "Invalid"); if (validation.IsCurrentValid == false) { if ((this.Options.ValidateKeys) && (this.DataMap.HasKeyDefined() == false)) validation.InvalidReason += "{No keys defined}"; if (this.AllSourcePropertiesMapped() == false) validation.InvalidReason += "{All source properties not mapped}"; if (validation.PropertyMapList.IsValid() == false) validation.InvalidReason += "{One or more validation properties invalid}"; validation.InvalidReason = validation.InvalidReason.Trim(); } //recurse into the kids foreach (var childMap in this.DataMap.DataMapCollectionList) { //get a child mapper var childMapper = this._dataMapBuilderCore.GetChildMapper(childMap.ItemDataMap.SourceType, childMap.ItemDataMap.TargetType); childMapper.ValidationOptions = this.Options; var childBuilder = new DataMapValidationBuilder(childMapper); var newValidation = new DataMapValidation(); newValidation.Parent = validation; validation.Children.Add(newValidation); childBuilder.Validate(newValidation); } }
public DataBuilderException(DataMapValidation validation) : base(BuildErrorMessage(validation)) { this.Validation = validation; this.ValidationSummary = validation.BuildValidationErrorMessage(); }
public DataMapValidation Build() { DataMapValidation validation = new DataMapValidation() { Parent = null }; this.Validate(validation); return validation; }