public SearchService(ISearchRepository searchRepository, IStatusGeneratorFactory statusGeneratorFactory, IPipelinePositionGenerator pipelinePositionGenerator)
        {
            Check.If(searchRepository).IsNotNull();
            Check.If(statusGeneratorFactory).IsNotNull();
            Check.If(pipelinePositionGenerator).IsNotNull();

            _searchRepository = searchRepository;
            _statusGeneratorFactory = statusGeneratorFactory;
            _pipelinePositionGenerator = pipelinePositionGenerator;
        }
        public static IEnumerable<Application> GenerateStatuses(this List<Application> applications, IStatusGeneratorFactory statusGeneratorFactory, IPipelinePositionGenerator pipelinePositionGenerator)
        {
            foreach (var application in applications)
            {
                application.GenerateStatuses(statusGeneratorFactory)
                    .GeneratePipelinePosition(pipelinePositionGenerator);
            }

            return applications;
        }
        public ArchiveService(IApplicationRepository applicationRepository,
            IStatusGeneratorFactory statusGeneratorFactory, IPipelinePositionGenerator pipelinePositionGenerator)
        {
            Check.If(applicationRepository).IsNotNull();
            Check.If(statusGeneratorFactory).IsNotNull();
            Check.If(pipelinePositionGenerator).IsNotNull();

            _applicationRepository = applicationRepository;
            _statusGeneratorFactory = statusGeneratorFactory;
            _pipelinePositionGenerator = pipelinePositionGenerator;
        }
        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 ValidationService(IEmailRepository emailRepository, ITelephoneNumberRepository telephoneNumberRepository,
            IPipelinePositionGenerator pipelinePositionGenerator, IArchiveService archiveService)
        {
            Check.If(emailRepository).IsNotNull();
            Check.If(telephoneNumberRepository).IsNotNull();
            Check.If(pipelinePositionGenerator).IsNotNull();
            Check.If(archiveService).IsNotNull();

            _emailRepository = emailRepository;
            _telephoneNumberRepository = telephoneNumberRepository;
            _pipelinePositionGenerator = pipelinePositionGenerator;
            _archiveService = archiveService;
        }
        public PropertyService(IPropertyRepository propertyRepository, 
                               IReferenceGenerator referenceGenerator,
                               IStatusGeneratorFactory statusGeneratorFactory,
                               IPropertyServiceClient propertyServiceClient,
                               IApplicationService applicationService, IPipelinePositionGenerator pipelinePositionGenerator)
        {
            Check.If(propertyRepository).IsNotNull();
            Check.If(referenceGenerator).IsNotNull();
            Check.If(statusGeneratorFactory).IsNotNull();
            Check.If(propertyServiceClient).IsNotNull();
            Check.If(applicationService).IsNotNull();

            _propertyRepository = propertyRepository;
            _referenceGenerator = referenceGenerator;
            _statusGeneratorFactory = statusGeneratorFactory;
            _propertyServiceClient = propertyServiceClient;
            _applicationService = applicationService;
            _pipelinePositionGenerator = pipelinePositionGenerator;
        }
 public ApplicationQueryService(IApplicationQueryRepository queryRepository, IStatusGeneratorFactory statusGeneratorFactory, IPipelinePositionGenerator pipelinePositionGenerator)
 {
     _queryRepository = queryRepository;
     _statusGeneratorFactory = statusGeneratorFactory;
     _pipelinePositionGenerator = pipelinePositionGenerator;
 }