public JobManagementService(
            IJobRepository jobRepository,
            INotificationService notificationService,
            IJobDefinitionsService jobDefinitionsService,
            IJobsResiliencePolicies resiliencePolicies,
            ILogger logger,
            IValidator <CreateJobValidationModel> createJobValidator,
            IMessengerService messengerService,
            ICacheProvider cacheProvider)
        {
            Guard.ArgumentNotNull(jobRepository, nameof(jobRepository));
            Guard.ArgumentNotNull(notificationService, nameof(notificationService));
            Guard.ArgumentNotNull(jobDefinitionsService, nameof(jobDefinitionsService));
            Guard.ArgumentNotNull(logger, nameof(logger));
            Guard.ArgumentNotNull(createJobValidator, nameof(createJobValidator));
            Guard.ArgumentNotNull(messengerService, nameof(messengerService));
            Guard.ArgumentNotNull(resiliencePolicies?.JobRepository, nameof(resiliencePolicies.JobRepository));
            Guard.ArgumentNotNull(resiliencePolicies?.JobDefinitionsRepository, nameof(resiliencePolicies.JobDefinitionsRepository));
            Guard.ArgumentNotNull(resiliencePolicies?.CacheProviderPolicy, nameof(resiliencePolicies.CacheProviderPolicy));
            Guard.ArgumentNotNull(cacheProvider, nameof(cacheProvider));

            _jobRepository         = jobRepository;
            _notificationService   = notificationService;
            _jobDefinitionsService = jobDefinitionsService;
            _jobsRepositoryPolicy  = resiliencePolicies.JobRepository;
            _logger              = logger;
            _createJobValidator  = createJobValidator;
            _messengerService    = messengerService;
            _cacheProvider       = cacheProvider;
            _cacheProviderPolicy = resiliencePolicies.CacheProviderPolicy;
        }
コード例 #2
0
        public NotificationService(IMessengerService messengerService, IJobsResiliencePolicies resiliencePolicies, ILogger logger)
        {
            Guard.ArgumentNotNull(messengerService, nameof(messengerService));
            Guard.ArgumentNotNull(logger, nameof(logger));
            Guard.ArgumentNotNull(resiliencePolicies?.MessengerServicePolicy, nameof(resiliencePolicies.MessengerServicePolicy));

            _messengerService       = messengerService;
            _messengerServicePolicy = resiliencePolicies.MessengerServicePolicy;
            _logger = logger;
        }
コード例 #3
0
        public JobService(IJobRepository jobRepository, IMapper mapper, IJobsResiliencePolicies resiliencePolicies)
        {
            Guard.ArgumentNotNull(jobRepository, nameof(jobRepository));
            Guard.ArgumentNotNull(mapper, nameof(mapper));
            Guard.ArgumentNotNull(resiliencePolicies, nameof(resiliencePolicies));

            _jobRepository                = jobRepository;
            _mapper                       = mapper;
            _jobsRepositoryPolicy         = resiliencePolicies.JobRepository;
            _jobsRepositoryNonAsyncPolicy = resiliencePolicies.JobRepositoryNonAsync;
        }
コード例 #4
0
 public JobDefinitionsService CreateJobDefinitionService(
     IJobDefinitionsRepository jobDefinitionsRepository = null,
     ILogger logger = null,
     IJobsResiliencePolicies resiliencePolicies = null,
     ICacheProvider cacheProvider = null)
 {
     return(new JobDefinitionsService(
                jobDefinitionsRepository ?? CreateJobDefinitionsRepository(),
                logger ?? CreateLogger(),
                resiliencePolicies ?? JobsResilienceTestHelper.GenerateTestPolicies(),
                cacheProvider ?? CreateCacheProvider()
                ));
 }
コード例 #5
0
        public JobDefinitionsService(IJobDefinitionsRepository jobDefinitionsRepository,
                                     ILogger logger, IJobsResiliencePolicies resiliencePolicies, ICacheProvider cacheProvider)
        {
            Guard.ArgumentNotNull(jobDefinitionsRepository, nameof(jobDefinitionsRepository));
            Guard.ArgumentNotNull(logger, nameof(logger));
            Guard.ArgumentNotNull(resiliencePolicies, nameof(resiliencePolicies));
            Guard.ArgumentNotNull(cacheProvider, nameof(cacheProvider));

            _jobDefinitionsRepository = jobDefinitionsRepository;
            _logger = logger;
            _jobDefinitionsRepositoryPolicy         = resiliencePolicies.JobDefinitionsRepository;
            _jobDefinitionsRepositoryNonAsyncPolicy = resiliencePolicies.JobRepositoryNonAsync;
            _cacheProvider = cacheProvider;
            _cachePolicy   = resiliencePolicies.CacheProviderPolicy;
        }
        public JobDefinitionValidator(IJobDefinitionsRepository jobDefinitions,
                                      IJobsResiliencePolicies resiliencePolicies)
        {
            Guard.ArgumentNotNull(jobDefinitions, nameof(jobDefinitions));
            Guard.ArgumentNotNull(resiliencePolicies?.JobDefinitionsRepository, nameof(resiliencePolicies.JobDefinitionsRepository));

            RuleFor(_ => _)
            .Custom((jobDefinition, ctx) =>
            {
                string jobDefinitionId = jobDefinition.Id;

                if (jobDefinitionId.IsNullOrWhitespace())
                {
                    ctx.AddFailure(nameof(JobDefinition.Id), "You must supply a job definition id");
                }
            });
        }
コード例 #7
0
 public JobManagementService CreateJobManagementService(
     IJobRepository jobRepository                 = null,
     INotificationService notificationService     = null,
     IJobDefinitionsService jobDefinitionsService = null,
     IJobsResiliencePolicies resiliencePolicies   = null,
     ILogger logger = null,
     IValidator <CreateJobValidationModel> createJobValidator = null,
     IMessengerService messengerService = null)
 {
     return(new JobManagementService(
                jobRepository ?? CreateJobRepository(),
                notificationService ?? CreateNotificationsService(),
                jobDefinitionsService ?? CreateJobDefinitionsService(),
                resiliencePolicies ?? CreateResiliencePolicies(),
                logger ?? CreateLogger(),
                createJobValidator ?? CreateNewCreateJobValidator(),
                messengerService ?? CreateMessengerService()
                ));
 }
コード例 #8
0
        public JobService(
            IJobRepository jobRepository,
            IMapper mapper,
            IJobsResiliencePolicies resiliencePolicies,
            ICacheProvider cacheProvider)
        {
            Guard.ArgumentNotNull(jobRepository, nameof(jobRepository));
            Guard.ArgumentNotNull(mapper, nameof(mapper));
            Guard.ArgumentNotNull(resiliencePolicies, nameof(resiliencePolicies));
            Guard.ArgumentNotNull(resiliencePolicies?.JobRepository, nameof(resiliencePolicies.JobRepository));
            Guard.ArgumentNotNull(resiliencePolicies?.CacheProviderPolicy, nameof(resiliencePolicies.CacheProviderPolicy));
            Guard.ArgumentNotNull(cacheProvider, nameof(cacheProvider));

            _jobRepository        = jobRepository;
            _mapper               = mapper;
            _jobsRepositoryPolicy = resiliencePolicies.JobRepository;
            _cacheProviderPolicy  = resiliencePolicies.CacheProviderPolicy;
            _cacheProvider        = cacheProvider;
        }
コード例 #9
0
        public JobDefinitionsService(IJobDefinitionsRepository jobDefinitionsRepository,
                                     ILogger logger,
                                     IJobsResiliencePolicies resiliencePolicies,
                                     ICacheProvider cacheProvider,
                                     IValidator <JobDefinition> validator)
        {
            Guard.ArgumentNotNull(jobDefinitionsRepository, nameof(jobDefinitionsRepository));
            Guard.ArgumentNotNull(logger, nameof(logger));
            Guard.ArgumentNotNull(resiliencePolicies, nameof(resiliencePolicies));
            Guard.ArgumentNotNull(cacheProvider, nameof(cacheProvider));
            Guard.ArgumentNotNull(resiliencePolicies?.JobDefinitionsRepository, nameof(resiliencePolicies.JobDefinitionsRepository));
            Guard.ArgumentNotNull(resiliencePolicies?.CacheProviderPolicy, nameof(resiliencePolicies.CacheProviderPolicy));
            Guard.ArgumentNotNull(validator, nameof(validator));

            _jobDefinitionsRepository = jobDefinitionsRepository;
            _logger = logger;
            _jobDefinitionsRepositoryPolicy = resiliencePolicies.JobDefinitionsRepository;
            _cacheProvider = cacheProvider;
            _validator     = validator;
            _cachePolicy   = resiliencePolicies.CacheProviderPolicy;
        }
コード例 #10
0
        private INotificationService CreateNotificationService(IMessengerService messengerService = null, ILogger logger = null)
        {
            IJobsResiliencePolicies policies = JobsResilienceTestHelper.GenerateTestPolicies();

            return(new NotificationService(messengerService ?? CreateMessengerService(), policies, logger ?? CreateLogger()));
        }