public IEnumerable <Statement> GetStatements(DateTime startDate, DateTime endDate, string bankIds) { var bankIdsList = bankIds.Split(","); var allStatements = _statementRepository.GetStatements(); var desiredStatements = allStatements.Where(s => startDate <= s.Date && s.Date <= endDate && bankIdsList.Contains(s.BankId)); var countStatements = desiredStatements.Count(); _logger?.LogInformation("Returning {countStatements} statements for {startDate} to {endDate}", countStatements, startDate, endDate); return(desiredStatements.OrderBy(s => s.Date)); }
public void Test_GetStatements_DateRange() { _statementRepo.GetStatements().ReturnsForAnyArgs(new List <Statement> { new Statement(new DateTime(2021, 5, 1), "sender", "subject", 100, "bankId"), new Statement(new DateTime(2021, 5, 2), "sender", "subject", 100, "bankId"), new Statement(new DateTime(2021, 7, 1), "sender", "subject", 100, "bankId"), }); _sut = new StatementService(_statementRepo, null, _finTsExecutor); var statements = _sut.GetStatements(new DateTime(2021, 5, 1), new DateTime(2021, 5, 2), "bankId"); statements.Count().Should().Be(2); statements.ToList()[0].Should().BeEquivalentTo(new Statement(new DateTime(2021, 5, 1), "sender", "subject", 100, "bankId")); statements.ToList()[1].Should().BeEquivalentTo(new Statement(new DateTime(2021, 5, 2), "sender", "subject", 100, "bankId")); }