/// <inheritdoc/> public async Task <IPagedList <Contract> > GetContractRemindersAsync(DateTime currentDateTimeMinusNumberOfDays, int pageNumber, int pageSize, ContractSortOptions sort, SortDirection order) { //return all contracts that need reminders sent. var query = _repository .GetMany(q => ((q.LastEmailReminderSent == null && currentDateTimeMinusNumberOfDays >= q.CreatedAt) || (q.LastEmailReminderSent != null && currentDateTimeMinusNumberOfDays >= q.LastEmailReminderSent)) && q.Status == (int)ContractStatus.PublishedToProvider); var sortedContracts = query.OrderByDynamic(sort.ToString(), order); return(await sortedContracts.ToPagedList(pageNumber, pageSize)); }
public void OrderByDynamic_UKPRN_Desc_Test() { //Arrange ContractSortOptions sort = ContractSortOptions.UKPRN; SortDirection order = SortDirection.Desc; var contracts = GetContracts().AsQueryable(); var mockDbSet = new DbSetMock <Contract>(contracts, (c, _) => c.Id, true); var mockRepo = Mock.Of <IRepository <Contract> >(MockBehavior.Strict); Mock.Get(mockRepo) .Setup(r => r.GetMany(It.IsAny <Expression <Func <Contract, bool> > >())) .Returns(mockDbSet.Object); //Act var result = mockDbSet.Object.OrderByDynamic(sort.ToString(), order).ToList(); //Assert result.FirstOrDefault().Id.Should().Be(10); }