public void AllTimeSliceEqualsShouldReturnTrueWhenComparedToStatisticWithSameTimeRange() { var first = new AllTimeSlice(DateTime.MinValue, DateTime.MaxValue); var second = new Statistic(first); first.Equals(second).Should().BeTrue(); }
public void AllTimeSliceEqualsShouldReturnTrueWhenStartAndEndDateAreEqual() { var first = new AllTimeSlice(DateTime.MinValue, DateTime.MaxValue); var second = new AllTimeSlice(DateTime.MinValue, DateTime.MaxValue); first.Equals(second).Should().BeTrue(); }
public void AllTimeSliceEqualsShouldReturnFalseWhenStartAndEndDateAreNotEqual() { var first = new AllTimeSlice(DateTime.MinValue, DateTime.MaxValue); var second = new AllTimeSlice(DateTime.MinValue, DateTime.Now); var third = new AllTimeSlice(DateTime.Now, DateTime.MaxValue); first.Equals(second).Should().BeFalse(); first.Equals(third).Should().BeFalse(); }
/// <summary> /// Creates the time slices which are affected by the given <paramref name="date"/> /// </summary> /// <param name="date">The date.</param> /// <returns></returns> public ITimeSlice CreateTimeSlices(DateTime date) { var minOrderDate = _queryDispatcher.Execute(new TransactionMinimumOrderDateQuery()); var maxOrderDate = _queryDispatcher.Execute(new TransactionMaximumOrderDateQuery()); if (minOrderDate == DateTime.MinValue || maxOrderDate == DateTime.MaxValue) { return(new AllTimeSlice(DateTime.MinValue, DateTime.MaxValue)); } var allSlice = new AllTimeSlice(_dateCalculationService.GetStartDateOfYear(minOrderDate), _dateCalculationService.GetEndDateOfYear(maxOrderDate)); CreateYears(allSlice, date); return(allSlice); }
/// <summary> /// Creates the years. /// </summary> /// <param name="slice">The slice.</param> /// <param name="date">The minimum date. Any date earlier that this will not be incorporated if not affected.</param> private void CreateYears(AllTimeSlice slice, DateTime date) { foreach (var year in _dateCalculationService.GetInvolvedYears(slice.Start, slice.End)) { //Skip earlier years if (year < date.Year) { continue; } var startOfYear = _dateCalculationService.GetStartAndEndDateOfYear(year, out DateTime endOfYear); var yearSlice = new YearTimeSlice(startOfYear, endOfYear, year); CreateQuarters(yearSlice, date); slice.AddSlice(yearSlice); } }