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 }); }
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)); }
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); }
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)); }