Ejemplo n.º 1
0
        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;
        }