public ReportQuery(string application, ReportTypes reportType, DateInterval interval, int numberOfResults)
 {
     Application = application;
     ReportType = reportType;
     Interval = interval;
     NumberOfResults = numberOfResults;
 }
        public static bool IsBetween(this DateTime source, DateInterval interval)
        {
            if (interval == null)
            {
                throw new ArgumentNullException("interval");
            }

            return source.IsBetween(interval.StartDate, interval.EndDate);
        }
		public void Equals_OtherIntervalIsSameInstance_IsTrue()
		{
			// arrange
			var interval = new DateInterval(new DateTime(1975, 5, 14), new DateTime(2011, 4, 20));

			// act
			var result = interval.Equals(interval);

			// assert
			Assert.That(result, Is.True);
		}
		public void Equals_OtherInstanceIsNull_IsFalse()
		{
			// arrange
			var interval = new DateInterval(new DateTime(1975, 5, 14), new DateTime(2011, 4, 20));

			// act
			var result = interval.Equals(null);

			// assert
			Assert.That(result, Is.False);
		}
		public void SetDateInterval(DateInterval interval)
		{
			if (InvokeRequired)
			{
				this.InvokeEx(x => x._selectionView.SetDateInterval(interval));
			}
			else
			{
				_selectionView.SetDateInterval(interval);
			}
		}
        public void Ctor_SetsApplicationReportTypeDateIntervalAndNumberOfResults()
        {
            // act
            var interval = new DateInterval(new DateTime(1975, 5, 14), new DateTime(2011, 4, 8));
            var query = new ReportQuery("application", ReportTypes.Type, interval, -1);

            // assert
            Assert.That(query.Application, Is.EqualTo("application"));
            Assert.That(query.ReportType, Is.EqualTo(ReportTypes.Type));
            Assert.That(query.Interval, Is.EqualTo(interval));
            Assert.That(query.NumberOfResults, Is.EqualTo(-1));
        }
		public void Equals_DifferentStartAndEndDate_IsFalse()
		{
			// arrange
			var interval1 = new DateInterval(new DateTime(1975, 5, 14), new DateTime(2011, 4, 20));
			var interval2 = new DateInterval(new DateTime(2006, 8, 19), new DateTime(2011, 4, 20));

			// act
			var result = interval1.Equals(interval2);

			// assert
			Assert.That(result, Is.False);
		}
		public void Equals_SameStartAndEndDate_IsTrue()
		{
			// arrange
			var interval1 = new DateInterval(new DateTime(1975, 5, 14), new DateTime(2011, 4, 20));
			var interval2 = new DateInterval(new DateTime(1975, 5, 14), new DateTime(2011, 4, 20));
			
			// act
			var result = interval1.Equals(interval2);

			// assert
			Assert.That(result, Is.True);
		}
		public void IsBetween_WithDateInterval_IsBefore_IsFalse()
		{
			// arrange
			var interval = new DateInterval(new DateTime(2001, 1, 1), new DateTime(2001, 12, 31));
			var date = new DateTime(1999, 5, 14);

			// act
			var result = date.IsBetween(interval);

			// assert
			Assert.That(result, Is.False);
		}
		public void ViewOnLoaded_SetsDefaultTimeIntervalWithValueFromSettings()
		{
			// arrange
			var presenter = BuildPresenter();
			var expectedInterval = new DateInterval(DateTime.Today.AddMonths(-1), DateTime.Today);

			// act
			_view.Raise(x => x.OnLoaded += null, new EventArgs());

			// assert
			_view.Verify(x => x.SetDateInterval(It.Is<DateInterval>(y => y.Equals(expectedInterval))), Times.Once());
		}
		public void ToString_ReturnsShortDateFormatOfStartAndEndDate()
		{
			// arrange
			var interval = new DateInterval(new DateTime(1975, 5, 14), new DateTime(2011, 4, 20));

			// act
            var formatInfo = (DateTimeFormatInfo)DateTimeFormatInfo.InvariantInfo.Clone();
            formatInfo.ShortDatePattern = "yyyy-MM-dd";
            var result = interval.ToString(formatInfo);
			
			// assert
			Assert.That(result, Is.EqualTo("1975-05-14 2011-04-20"));
		}
		public void Ctor_SetStartAndEndDate()
		{
			// arrange
			var startDate = DateTime.Today;
			var endDate = DateTime.Today.AddDays(1);

			// act
			var interval = new DateInterval(startDate, endDate);

			// assert
			Assert.That(interval.StartDate, Is.EqualTo(startDate));
			Assert.That(interval.EndDate, Is.EqualTo(endDate));
		}
		public bool Equals(DateInterval other)
		{
			if (ReferenceEquals(null, other))
			{
				return false;
			}
			
			if (ReferenceEquals(this, other))
			{
				return true;
			}

			return other.StartDate.Equals(StartDate) && other.EndDate.Equals(EndDate);
		}
 public void SetDateInterval(DateInterval interval)
 {
     _dateIntervalPicker.SetInterval(interval);
 }
		public void SetDateInterval(DateInterval interval)
		{
			_filterView.SetDateInterval(interval);
		}
		public void SetInterval(DateInterval interval)
		{
			_startDateTimePicker.Value = interval.StartDate;
			_endDateTimePicker.Value = interval.EndDate;
		}