public CaselistService(IApplicationRepository applicationRepository, IPipelinePositionGenerator pipelinePositionGenerator, ICaselistWindowSettings caselistWindowSettings) { Check.If(applicationRepository).IsNotNull(); Check.If(pipelinePositionGenerator).IsNotNull(); Check.If(caselistWindowSettings).IsNotNull(); _applicationRepository = applicationRepository; _pipelinePositionGenerator = pipelinePositionGenerator; _caselistWindowSettings = caselistWindowSettings; }
public static IEnumerable<Application> InWindow(this IEnumerable<Application> applications, ICaselistWindowSettings settings) { var result = new List<Application>(); foreach (var application in applications) { var excluded = settings.ExcludedPipelinePositions.FirstOrDefault(x => x.Position == application.PipelinePosition); if (excluded.IsNotNull()) { result.Add(application); } else if (application.DateCreated >= settings.CalculateWindowStartDate() || application.DateUpdated >= settings.CalculateWindowStartDate()) { result.Add(application); } } return result; }