public override void Initialize(MemberInfo member, Type memberValueType)
        {
            var contextReqSymbol   = ValueResolverUtility.CreateContext(this, member);
            var contextNoReqSymbol = ValueResolverUtility.CreateContext(this, member);

            this.messageGetter     = MessageValueResolver.Resolve(contextReqSymbol, this.Attribute.Message);
            this.showMessageGetter = BoolValueResolver.Resolve(contextNoReqSymbol, this.Attribute.VisibleIf, true);
        }
Exemple #2
0
        public override void Initialize(MemberInfo member, Type memberValueType)
        {
            var contextReqSymbol   = ValueResolverUtility.CreateContext(this, member);
            var contextNoReqSymbol = ValueResolverUtility.CreateContext(this, member);

            //contextReqSymbol.RequireSymbolForMemberReferences = true;

            this.messageGetter     = MessageValueResolver.Resolve(contextReqSymbol, this.Attribute.Message, this.Attribute.Message);
            this.detailsGetter     = MessageValueResolver.Resolve(contextReqSymbol, this.Attribute.Details, this.Attribute.Details);
            this.showMessageGetter = BoolValueResolver.Resolve(contextNoReqSymbol, this.Attribute.VisibleIf, true);
        }
        public override void Initialize(MemberInfo member, Type memberValueType)
        {
#pragma warning disable CS0618 // Type or member is obsolete.
            this.requireExistingPath = this.Attribute.RequireExistingPath || this.Attribute.RequireValidPath;
#pragma warning restore CS0618 // Type or member is obsolete.

            if (this.requireExistingPath)
            {
                var context = ValueResolverUtility.CreateContext(this, member);
                this.parentPathProvider = ParentPathResolver.Resolve(context, this.Attribute.ParentFolder, null);
            }
        }
        protected override void Initialize()
        {
            if (ValueResolver == null)
            {
                ValueResolver = ValueResolverUtility.GetResolver <double>()
                                .TryMemberReference()
                                .TryExpression();
            }

            var context = ValueResolverUtility.CreateContext(this);

            this.maxValueGetter = ValueResolver.Resolve(context, this.Attribute.Expression, this.Attribute.MaxValue);
        }
Exemple #5
0
        public override void Initialize(MemberInfo member, Type memberValueType)
        {
            if (ValueResolver == null)
            {
                ValueResolver = ValueResolverUtility.GetResolver <double>()
                                .TryMemberReference()
                                .TryExpression();
            }

            var context = ValueResolverUtility.CreateContext(this, member);

            context.AddExpressionParameter <T>("value", () => this.valueExpressionArgument);

            this.maxValueGetter = ValueResolver.Resolve(context, this.Attribute.Expression, context.Validator.Attribute.MaxValue);
        }
Exemple #6
0
        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;
            }
        }
Exemple #8
0
        public override void Initialize(MemberInfo member, Type memberValueType)
        {
            if (ValueResolver == null)
            {
                ValueResolver = ValueResolverUtility.GetResolver <double>()
                                .TryMemberReference()
                                .TryExpression();

                RangeResolver = ValueResolverUtility.GetValidatorResolver <MinMaxSliderValidator <T>, Vector2>()
                                .TryMemberReference()
                                .TryExpression()
                                .Func(c => new Vector2((float)c.Validator.minValueGetter.GetValue(), (float)c.Validator.maxValueGetter.GetValue()));
            }

            var context = ValueResolverUtility.CreateContext(this, member);

            context.AddExpressionParameter <T>("value", () => this.valueExpressionArgument);

            this.minValueGetter = ValueResolver.Resolve(context, this.Attribute.MinMember, context.Validator.Attribute.MinValue);
            this.maxValueGetter = ValueResolver.Resolve(context, this.Attribute.MaxMember, context.Validator.Attribute.MaxValue);
            this.rangeGetter    = RangeResolver.Resolve(context, this.Attribute.MinMaxMember);
        }
Exemple #9
0
        /// <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;
            //    }
            //}
        }