private List <Date> GetDatesFiltered(DateQuery query) { var dates = DateStorage.GetData().Select(x => x.Value); if (query.SchoolYearId.HasValue) { dates = dates.Where(x => x.SchoolYearRef == query.SchoolYearId); } if (query.FromDate.HasValue) { dates = dates.Where(x => x.Day >= query.FromDate); } if (query.ToDate.HasValue) { dates = dates.Where(x => x.Day <= query.ToDate); } if (query.SchoolDaysOnly) { dates = dates.Where(x => x.IsSchoolDay); } if (query.MarkingPeriodId.HasValue) { var mp = ServiceLocator.MarkingPeriodService.GetMarkingPeriodById(query.MarkingPeriodId.Value); dates = dates.Where(x => mp.StartDate <= x.Day && mp.EndDate >= x.Day); } if (query.DayType.HasValue) { dates = dates.Where(x => x.DayTypeRef == query.DayType); } return(dates.ToList()); }
/// <summary> /// Test Find using the Query class /// </summary> private void Step_30_TestFindByQuery_Generated() { using (TransactionManager tm = CreateTransaction()) { //Insert Mock Instance Date mock = CreateMockInstance(tm); bool result = DataRepository.DateProvider.Insert(tm, mock); Assert.IsTrue(result, "Could Not Test FindByQuery, Insert Failed"); DateQuery query = new DateQuery(); query.AppendEquals(DateColumn.Id, mock.Id.ToString()); if (mock.OrgDate != null) { query.AppendEquals(DateColumn.OrgDate, mock.OrgDate.ToString()); } if (mock.Complete != null) { query.AppendEquals(DateColumn.Complete, mock.Complete.ToString()); } TList <Date> results = DataRepository.DateProvider.Find(tm, query); Assert.IsTrue(results.Count == 1, "Find is not working correctly. Failed to find the mock instance"); } }
public async Task FindByDateTest() { var date = new DateTime(2018, 1, 1); var dateQuery = new DateQuery(date); var category = CategoryData.CreateCategory(Guid.NewGuid()); var transaction1 = TransactionData.CreateTransaction(Guid.NewGuid(), date, category: category); var transaction2 = TransactionData.CreateTransaction(Guid.NewGuid(), date.AddDays(1), category: category); var transaction3 = TransactionData.CreateTransaction(Guid.NewGuid(), date.AddDays(2), category: category); var transaction4 = TransactionData.CreateTransaction(Guid.NewGuid(), date.AddDays(3), category: category); await CommitCreateAsync(category); await CommitCreateAsync(transaction1); await CommitCreateAsync(transaction2); await CommitCreateAsync(transaction3); await CommitCreateAsync(transaction4); var foundTransactions = await TransactionRepository.FindAsync( new TransactionQuery(new DateRangeQuery(dateQuery, dateQuery))); Assert.That(foundTransactions, Is.EquivalentTo(new[] { transaction1 })); }
public IEnumerable <Date> GetDates(DateQuery dateQuery) { return(GetDatesFiltered(dateQuery)); }