protected override void Validate(object parentInstance, object memberValue, MemberInfo member, ValidationResult result) { if (this.showMessageGetter.Failed || this.messageGetter.Failed || this.showMessageGetter.Failed) { result.ResultType = ValidationResultType.Error; result.Message = ValueResolverUtility.CombineErrorMessagesWhereFailed(showMessageGetter, messageGetter, detailsGetter); return; } bool hasMessage = this.showMessageGetter.GetValue(parentInstance); if (hasMessage) { result.ResultType = this.Attribute.InfoMessageType.ToValidationResultType(); result.Message = this.messageGetter.GetValue(parentInstance) + "\n\nDETAILS:\n\n" + this.detailsGetter.GetValue(parentInstance); } }
protected override void Validate(object parentInstance, T memberValue, MemberInfo member, ValidationResult result) { if (this.minValueGetter.Failed || this.maxValueGetter.Failed) { result.Message = ValueResolverUtility.CombineErrorMessagesWhereFailed(this.minValueGetter, this.maxValueGetter); result.ResultType = ValidationResultType.Error; return; } this.valueExpressionArgument = memberValue; var min = this.minValueGetter.GetValue(parentInstance); var max = this.maxValueGetter.GetValue(parentInstance); if (!GenericNumberUtility.NumberIsInRange(memberValue, min, max)) { result.Message = "Number is not in range."; result.ResultType = ValidationResultType.Error; } }
/// <summary> /// Initializes the drawer. /// </summary> protected override void Initialize() { var context = ValueResolverUtility.CreateContext(this); this.minGetter = scalarResolver.Resolve(context, this.Attribute.MinMember, this.Attribute.MinValue); this.maxGetter = scalarResolver.Resolve(context, this.Attribute.MaxMember, this.Attribute.MaxValue); this.rangeGetter = vectorResolver.Resolve(context, this.Attribute.MinMaxMember); this.errorMessage = ValueResolverUtility.CombineErrorMessagesWhereFailed(this.minGetter, this.maxGetter, this.rangeGetter); //MemberInfo member; //// Min member reference. //if (string.IsNullOrEmpty(this.Attribute.MinMember) == false) //{ // if (this.Attribute.MinMember[0] == '$') // { // // Look for an expression. // this.floatMinGetter = new InspectorPropertyValueGetter<float>(this.Property, this.Attribute.MinMember); // } // else if (MemberFinder.Start(this.Property.ParentType) // .IsNamed(this.Attribute.MinMember) // .HasNoParameters() // .TryGetMember(out member, out this.errorMessage)) // { // var type = member.GetReturnType(); // if (type == typeof(int)) // { // this.intMinGetter = new InspectorPropertyValueGetter<int>(this.Property, this.Attribute.MinMember); // } // else if (type == typeof(float)) // { // this.floatMinGetter = new InspectorPropertyValueGetter<float>(this.Property, this.Attribute.MinMember); // } // } //} //// Max member reference. //if (string.IsNullOrEmpty(this.Attribute.MaxMember) == false) //{ // if (this.Attribute.MaxMember[0] == '$') // { // // Look for an expression. // this.floatMaxGetter = new InspectorPropertyValueGetter<float>(this.Property, this.Attribute.MaxMember); // } // else if (MemberFinder.Start(this.Property.ParentType) // .IsNamed(this.Attribute.MaxMember) // .HasNoParameters() // .TryGetMember(out member, out this.errorMessage)) // { // var type = member.GetReturnType(); // if (type == typeof(int)) // { // this.intMaxGetter = new InspectorPropertyValueGetter<int>(this.Property, this.Attribute.MaxMember); // } // else if (type == typeof(float)) // { // this.floatMaxGetter = new InspectorPropertyValueGetter<float>(this.Property, this.Attribute.MaxMember); // } // } //} //// Min max member reference. //if (string.IsNullOrEmpty(this.Attribute.MinMaxMember) == false) //{ // this.vector2MinMaxGetter = new InspectorPropertyValueGetter<Vector2>(this.Property, this.Attribute.MinMaxMember); // if (this.errorMessage != null) // { // this.errorMessage = this.vector2MinMaxGetter.ErrorMessage; // } //} }