/// <summary> /// Validates this. instance. /// </summary> /// <param name="validationLog">The validation.</param> protected internal override void Validate(ValidationLog validationLog) { base.Validate(validationLog); if (this.AssociationType != null && this.RoleType != null) { if (validationLog.ExistRelationName(this.Name)) { var message = "name of " + this.ValidationName + " is already in use"; validationLog.AddError(message, this, ValidationKind.Unique, "RelationType.Name"); } else { validationLog.AddRelationTypeName(this.Name); } if (validationLog.ExistRelationName(this.ReverseName)) { var message = "reversed name of " + this.ValidationName + " is already in use"; validationLog.AddError(message, this, ValidationKind.Unique, "RelationType.Name"); } else { validationLog.AddRelationTypeName(this.ReverseName); } if (validationLog.ExistObjectTypeName(this.Name)) { var message = "name of " + this.ValidationName + " is in conflict with object type " + this.Name; validationLog.AddError(message, this, ValidationKind.Unique, "RelationType.Name"); } if (validationLog.ExistObjectTypeName(this.ReverseName)) { var message = "reversed name of " + this.ValidationName + " is in conflict with object type " + this.Name; validationLog.AddError(message, this, ValidationKind.Unique, "RelationType.Name"); } } else { if (this.AssociationType == null) { var message = this.ValidationName + " has no association type"; validationLog.AddError(message, this, ValidationKind.Required, "RelationType.AssociationType"); } else { var message = this.ValidationName + " has no role type"; validationLog.AddError(message, this, ValidationKind.Required, "RelationType.RoleType"); } } this.AssociationType?.Validate(validationLog); this.RoleType?.Validate(validationLog); }
/// <summary> /// Validates this instance. /// </summary> /// <param name="validationLog">The validation.</param> protected internal override void Validate(ValidationLog validationLog) { base.Validate(validationLog); if (!string.IsNullOrEmpty(this.SingularName)) { if (this.SingularName.Length < 2) { var message = this.ValidationName + " should have a singular name with at least 2 characters"; validationLog.AddError(message, this, ValidationKind.MinimumLength, "IObjectType.SingularName"); } else { if (!char.IsLetter(this.SingularName[0])) { var message = this.ValidationName + "'s singular name should start with an alfabetical character"; validationLog.AddError(message, this, ValidationKind.Format, "IObjectType.SingularName"); } for (var i = 1; i < this.SingularName.Length; i++) { if (!char.IsLetter(this.SingularName[i]) && !char.IsDigit(this.SingularName[i])) { var message = this.ValidationName + "'s singular name should only contain alfanumerical characters"; validationLog.AddError(message, this, ValidationKind.Format, "IObjectType.SingularName"); break; } } } if (validationLog.ExistObjectTypeName(this.SingularName)) { var message = "The singular name of " + this.ValidationName + " is already in use"; validationLog.AddError(message, this, ValidationKind.Unique, "IObjectType.SingularName"); } else { validationLog.AddObjectTypeName(this.SingularName); } } else { validationLog.AddError(this.ValidationName + " has no singular name", this, ValidationKind.Required, "IObjectType.SingularName"); } if (!string.IsNullOrEmpty(this.PluralName)) { if (this.PluralName.Length < 2) { var message = this.ValidationName + " should have a plural name with at least 2 characters"; validationLog.AddError(message, this, ValidationKind.MinimumLength, "IObjectType.PluralName"); } else { if (!char.IsLetter(this.PluralName[0])) { var message = this.ValidationName + "'s plural name should start with an alfabetical character"; validationLog.AddError(message, this, ValidationKind.Format, "IObjectType.PluralName"); } for (var i = 1; i < this.PluralName.Length; i++) { if (!char.IsLetter(this.PluralName[i]) && !char.IsDigit(this.PluralName[i])) { var message = this.ValidationName + "'s plural name should only contain alfanumerical characters"; validationLog.AddError(message, this, ValidationKind.Format, "IObjectType.PluralName"); break; } } } if (validationLog.ExistObjectTypeName(this.PluralName)) { var message = "The plural name of " + this.ValidationName + " is already in use"; validationLog.AddError(message, this, ValidationKind.Unique, "IObjectType.PluralName"); } else { validationLog.AddObjectTypeName(this.PluralName); } } else { validationLog.AddError(this.ValidationName + " has no plural name", this, ValidationKind.Required, "IObjectType.PluralName"); } }
/// <summary> /// Validates this instance. /// </summary> /// <param name="validationLog">The validation.</param> protected internal override void Validate(ValidationLog validationLog) { base.Validate(validationLog); if (!string.IsNullOrEmpty(this.SingularName)) { if (this.SingularName.Length < 2) { var message = this.ValidationName + " should have a singular name with at least 2 characters"; validationLog.AddError(message, this, ValidationKind.MinimumLength, "IObjectType.SingularName"); } else { if (!char.IsLetter(this.SingularName[0])) { var message = this.ValidationName + "'s singular name should start with an alfabetical character"; validationLog.AddError(message, this, ValidationKind.Format, "IObjectType.SingularName"); } for (var i = 1; i < this.SingularName.Length; i++) { if (!char.IsLetter(this.SingularName[i]) && !char.IsDigit(this.SingularName[i])) { var message = this.ValidationName + "'s singular name should only contain alfanumerical characters"; validationLog.AddError(message, this, ValidationKind.Format, "IObjectType.SingularName"); break; } } } if (validationLog.ExistObjectTypeName(this.SingularName)) { var message = "The singular name of " + this.ValidationName + " is already in use"; validationLog.AddError(message, this, ValidationKind.Unique, "IObjectType.SingularName"); } else { validationLog.AddObjectTypeName(this.SingularName); } } else { validationLog.AddError(this.ValidationName + " has no singular name", this, ValidationKind.Required, "IObjectType.SingularName"); } if (!string.IsNullOrEmpty(this.PluralName)) { if (this.PluralName.Length < 2) { var message = this.ValidationName + " should have a plural name with at least 2 characters"; validationLog.AddError(message, this, ValidationKind.MinimumLength, "IObjectType.PluralName"); } else { if (!char.IsLetter(this.PluralName[0])) { var message = this.ValidationName + "'s plural name should start with an alfabetical character"; validationLog.AddError(message, this, ValidationKind.Format, "IObjectType.PluralName"); } for (var i = 1; i < this.PluralName.Length; i++) { if (!char.IsLetter(this.PluralName[i]) && !char.IsDigit(this.PluralName[i])) { var message = this.ValidationName + "'s plural name should only contain alfanumerical characters"; validationLog.AddError(message, this, ValidationKind.Format, "IObjectType.PluralName"); break; } } } if (validationLog.ExistObjectTypeName(this.PluralName)) { var message = "The plural name of " + this.ValidationName + " is already in use"; validationLog.AddError(message, this, ValidationKind.Unique, "IObjectType.PluralName"); } else { validationLog.AddObjectTypeName(this.PluralName); } } }
/// <summary> /// Validates this. instance. /// </summary> /// <param name="validationLog">The validation.</param> protected internal override void Validate(ValidationLog validationLog) { base.Validate(validationLog); if (this.AssociationType != null && this.RoleType != null) { if (validationLog.ExistRelationName(this.Name)) { var message = "name of " + this.ValidationName + " is already in use"; validationLog.AddError(message, this, ValidationKind.Unique, "RelationType.Name"); } else { validationLog.AddRelationTypeName(this.Name); } if (validationLog.ExistRelationName(this.ReverseName)) { var message = "reversed name of " + this.ValidationName + " is already in use"; validationLog.AddError(message, this, ValidationKind.Unique, "RelationType.Name"); } else { validationLog.AddRelationTypeName(this.ReverseName); } if (validationLog.ExistObjectTypeName(this.Name)) { var message = "name of " + this.ValidationName + " is in conflict with object type " + this.Name; validationLog.AddError(message, this, ValidationKind.Unique, "RelationType.Name"); } if (validationLog.ExistObjectTypeName(this.ReverseName)) { var message = "reversed name of " + this.ValidationName + " is in conflict with object type " + this.Name; validationLog.AddError(message, this, ValidationKind.Unique, "RelationType.Name"); } } else { if (this.AssociationType == null) { var message = this.ValidationName + " has no association type"; validationLog.AddError(message, this, ValidationKind.Required, "RelationType.AssociationType"); } else { var message = this.ValidationName + " has no role type"; validationLog.AddError(message, this, ValidationKind.Required, "RelationType.RoleType"); } } if (this.AssociationType != null) { this.AssociationType.Validate(validationLog); } if (this.RoleType != null) { this.RoleType.Validate(validationLog); } }