public override FilterDescriptorBase BuildDescriptor()
        {
            var fromDescriptor = new DateTimeFilterDescriptor()
            {
                Part = DateTimePart.Time
            };

            fromDescriptor.PropertyName = this.PropertyName;
            fromDescriptor.Value        = this.fromPicker.Value;
            fromDescriptor.Operator     = NumericalOperator.IsGreaterThanOrEqualTo;

            var toDescriptor = new DateTimeFilterDescriptor()
            {
                Part = DateTimePart.Time
            };

            toDescriptor.PropertyName = this.PropertyName;
            toDescriptor.Value        = this.toPicker.Value;
            toDescriptor.Operator     = NumericalOperator.IsLessThanOrEqualTo;

            return(new CompositeFilterDescriptor(new FilterDescriptorBase[] { fromDescriptor, toDescriptor })
            {
                Operator = LogicalOperator.And
            });
        }
Example #2
0
        public void Test_Operator_IsGreaterThan()
        {
            var descriptor = new DateTimeFilterDescriptor();

            descriptor.Value    = DefaultDate;
            descriptor.Operator = NumericalOperator.IsGreaterThan;

            var memberAccess = new ViewModelMemberAccess();

            descriptor.MemberAccess = memberAccess;

            var model = new ViewModel()
            {
                Date       = DefaultDate.AddDays(1),
                DateOffset = new DateTimeOffset(DefaultDate.AddDays(1), DefaultTimeSpan)
            };

            Assert.IsTrue(descriptor.PassesFilter(model));

            descriptor.Value = DefaultDate.AddDays(1);
            Assert.IsFalse(descriptor.PassesFilter(model));

            // DateTimeOffset
            descriptor.Value          = new DateTimeOffset(DefaultDate, DefaultTimeSpan);
            memberAccess.IsDateOffset = true;
            Assert.IsTrue(descriptor.PassesFilter(model));

            descriptor.Value = DefaultDate;
            Assert.IsTrue(descriptor.PassesFilter(model));

            descriptor.Value = DefaultDate.AddDays(1).AddHours(TimeZoneInfo.Local.BaseUtcOffset.Hours - 1);
            Assert.IsFalse(descriptor.PassesFilter(model));
        }
Example #3
0
        public void Test_Operator_DoesNotEqualTo()
        {
            var descriptor = new DateTimeFilterDescriptor();

            descriptor.Value    = DefaultDate;
            descriptor.Operator = NumericalOperator.DoesNotEqualTo;

            var memberAccess = new ViewModelMemberAccess();

            descriptor.MemberAccess = memberAccess;

            var model = this.GetItems(1).First();

            Assert.IsFalse(descriptor.PassesFilter(model));

            descriptor.Value = DefaultDate.AddDays(1);
            Assert.IsTrue(descriptor.PassesFilter(model));

            // DateTimeOffset
            descriptor.Value          = new DateTimeOffset(DefaultDate, DefaultTimeSpan);
            memberAccess.IsDateOffset = true;
            Assert.IsFalse(descriptor.PassesFilter(model));

            descriptor.Value = DefaultDate;
            Assert.IsTrue(descriptor.PassesFilter(model));

            descriptor.Value = DefaultDate.AddHours(TimeZoneInfo.Local.BaseUtcOffset.Hours - 1);
            Assert.IsFalse(descriptor.PassesFilter(model));
        }
        /// <summary>
        /// Builds the <see cref="FilterDescriptorBase" /> that describes the user input within this instance.
        /// </summary>
        public override FilterDescriptorBase BuildDescriptor()
        {
            var descriptor = new DateTimeFilterDescriptor();

            descriptor.PropertyName = this.PropertyName;
            descriptor.Operator     = (NumericalOperator)this.OperatorCombo.SelectedIndex;

            if (this.Picker != null)
            {
                descriptor.Value = this.Picker.Value;
                descriptor.Part  = this.Part;
            }

            return(descriptor);
        }
Example #5
0
        public void Test_ConvertValue_FromString()
        {
            var descriptor = new DateTimeFilterDescriptor();

            descriptor.Value = "1/1/2010";

            var memberAccess = new ViewModelMemberAccess();

            descriptor.MemberAccess = memberAccess;

            var model = new ViewModel()
            {
                Date = new DateTime(2010, 1, 1)
            };

            Assert.IsTrue(descriptor.PassesFilter(model));

            descriptor.Value = "1/2/2010";
            Assert.IsFalse(descriptor.PassesFilter(model));
        }