Example #1
0
 public DefaultAutomationProviderRegistry(
     INamedServiceFactory <IAutomationConditionProvider> conditionProviderFactory,
     INamedServiceFactory <IAutomationActionProvider> actionProviderFactory)
 {
     _conditionProviderFactory = conditionProviderFactory;
     _actionProviderFactory    = actionProviderFactory;
 }
 public GetDocumentMetadataHandler(
     INamedServiceFactory <IClassifierRepository> classifierRepositoryFactory,
     IRepository <FieldMetadata> metadataRepository)
 {
     _classifierRepositoryFactory = classifierRepositoryFactory;
     _metadataRepository          = metadataRepository;
 }
Example #3
0
 public DeleteClassifierHandler(
     IUnitOfWorkFactory unitOfWorkFactory,
     INamedServiceFactory <IClassifierRepository> repositoryFactory)
 {
     _unitOfWorkFactory = unitOfWorkFactory;
     _repositoryFactory = repositoryFactory;
 }
Example #4
0
 // todo: use INamedServiceFactory<IClassifierRepository> repositoryFactory
 public InsertInvitationHandler(IUnitOfWorkFactory unitOfWorkFactory, IDbContextFactory dbContextFactory,
                                INamedServiceFactory <IClassifierRepository> repositoryFactory)
 {
     _unitOfWorkFactory = unitOfWorkFactory;
     _dbContextFactory  = dbContextFactory;
     _repositoryFactory = repositoryFactory;
 }
Example #5
0
 public DefaultClassifierRegistrator(
     ILogger <DefaultClassifierRegistrator> logger,
     INamedServiceFactory <IClassifierRepository> classifierRepositoryFactory)
 {
     _logger = logger;
     _classifierRepositoryFactory = classifierRepositoryFactory;
 }
Example #6
0
 public RegisterPermissionsStartupTask(
     INamedServiceFactory <IClassifierRepository> classifierRepositoryFactory,
     IEnumerable <IPermissionProvider> permissionProviders,
     RoleManager <DbRole> roleManager)
 {
     _classifierRepositoryFactory = classifierRepositoryFactory;
     _permissionProviders         = permissionProviders;
     _roleManager = roleManager;
 }
Example #7
0
        public CompositeExecutionServiceProvider(
            INamedServiceFactory <IExecutionServiceProvider> execServiceProviderFactory,
            IServiceProvider serviceProvider)
        {
            this.execServiceProviderFactory = execServiceProviderFactory ??
                                              throw new ArgumentNullException(nameof(execServiceProviderFactory));

            this.serviceProvider = serviceProvider ??
                                   throw new ArgumentNullException(nameof(serviceProvider));
        }
Example #8
0
 public DbAutomationRepository(
     IDbContextFactory dbContextFactory,
     INamedServiceFactory <IAutomationConditionProvider> conditionProvider,
     INamedServiceFactory <IAutomationActionProvider> actionProvider,
     IJsonSerializer jsonSerializer)
 {
     _dbContextFactory  = dbContextFactory;
     _conditionProvider = conditionProvider;
     _actionProvider    = actionProvider;
     _jsonSerializer    = jsonSerializer;
 }
Example #9
0
 public ExternalRegisterHandler(
     ILogger <ExternalRegisterHandler> logger,
     INamedServiceFactory <IClassifierRepository> classifierRepositoryFactory,
     UserManager <DbUser> userManager,
     SignInManager <DbUser> signInManager,
     IEmailConfirmationService emailConfirmationService)
 {
     _logger = logger;
     _classifierRepositoryFactory = classifierRepositoryFactory;
     _userManager              = userManager;
     _signInManager            = signInManager;
     _emailConfirmationService = emailConfirmationService;
 }
Example #10
0
        /// <summary>
        /// Adds a service to the collection specifying what named dependencies to assign to named parameters.
        /// </summary>
        /// <typeparam name="TService">The type of service to add.</typeparam>
        /// <typeparam name="TImplementation">The implementation type for the service.</typeparam>
        /// <param name="serviceCollection">The collection of service descriptors.</param>
        /// <param name="lifetime">The lifetime of the service.</param>
        /// <param name="dependencies">
        /// The collection of named dependencies.
        /// {registeredType, registeredName, parameterName}
        /// </param>
        /// <returns>The <see cref="IServiceCollection"/>.</returns>
        public static IServiceCollection AddServiceWithNamedDependencies <TService, TImplementation>(
            this IServiceCollection serviceCollection,
            ServiceLifetime lifetime,
            params NamedDependency[] dependencies)
            where TImplementation : class
        {
            INamedServiceFactory[] factories = serviceCollection.Where(x => typeof(INamedServiceFactory).IsAssignableFrom(x.ServiceType))
                                               .Select(x => x.ImplementationInstance).Cast <INamedServiceFactory>().ToArray();

            // Gather a set of parameters from our target ttype that best match our named dependencies.
            ParameterInfo[] parameters = GetMatchingConstructorParameters <TImplementation>(out ConstructorInfo constructorInfo, dependencies);

            // Create an array of parameter factories that we can pass to our target factory.
            // We can reuse this for every request keeping overheads low and performance high.
            var argsFactory = new Func <IServiceProvider, object> [parameters.Length];

            for (int i = 0; i < parameters.Length; i++)
            {
                ParameterInfo parameter     = parameters[i];
                string        parameterName = parameter.Name;
                Type          parameterType = parameter.ParameterType;

                NamedDependency dependency = Array.Find(dependencies, x => x.ParameterName == parameterName && parameterType.IsAssignableFrom(x.ServiceType));
                if (dependency != default)
                {
                    INamedServiceFactory factory = Array.Find(factories, x => x.ServiceType == dependency.ServiceType);
                    if (factory != null)
                    {
                        argsFactory[i] = p => factory.Resolve(dependency.ServiceName, p);
                        continue;
                    }
                }

                argsFactory[i] = p => p.GetService(parameterType);
            }

            serviceCollection.Add(new ServiceDescriptor(typeof(TService), provider =>
            {
                object[] args = new object[argsFactory.Length];
                for (int i = 0; i < argsFactory.Length; i++)
                {
                    args[i] = argsFactory[i].Invoke(provider);
                }

                return(constructorInfo.Invoke(args));
            }, lifetime));

            return(serviceCollection);
        }
Example #11
0
 public CreateCompanyHandler(IUnitOfWorkFactory unitOfWorkFactory, IDbContextFactory dbContextFactory,
                             IDateTimeProvider dateTimeProvider, IRepository <FieldMetadata> fieldMetadataRepository, IFieldDataRepository fieldDataRepository,
                             INamedServiceFactory <IClassifierRepository> classifierRepositoryFactory, IDocumentService documentRepository,
                             IAuditLogService auditLogService, IBackgroundJobManager jobManager)
 {
     _unitOfWorkFactory           = unitOfWorkFactory;
     _dbContextFactory            = dbContextFactory;
     _dateTimeProvider            = dateTimeProvider;
     _fieldMetadataRepository     = fieldMetadataRepository;
     _fieldDataRepository         = fieldDataRepository;
     _classifierRepositoryFactory = classifierRepositoryFactory;
     _documentRepository          = documentRepository;
     _auditLogService             = auditLogService;
     _jobManager = jobManager;
 }
Example #12
0
 public SetupSystemHandler(ILogger <SetupSystemHandler> logger,
                           IOptionsMonitor <AppOptions> optionsMonitor,
                           IUnitOfWorkFactory unitOfWorkFactory,
                           INamedServiceFactory <IClassifierRepository> classifierRepositoryFactory,
                           ISignInManager signInManager,
                           ISettingsRepository settingsRepository,
                           IAppUrlBuilder appUrlBuilder,
                           ILocalizer localizer,
                           ISender mediator)
 {
     _logger                      = logger;
     _optionsMonitor              = optionsMonitor;
     _unitOfWorkFactory           = unitOfWorkFactory;
     _classifierRepositoryFactory = classifierRepositoryFactory;
     _signInManager               = signInManager;
     _settingsRepository          = settingsRepository;
     _appUrlBuilder               = appUrlBuilder;
     _localizer                   = localizer;
     _mediator                    = mediator;
 }
Example #13
0
 public DocumentRecipientResolver(IAutomationContextProvider automationContextProvider,
                                  INamedServiceFactory <IClassifierRepository> classifierRepositoryFactory)
 {
     _automationContextProvider   = automationContextProvider;
     _classifierRepositoryFactory = classifierRepositoryFactory;
 }
Example #14
0
 public CompositeOutputObjectAccessorProvider(IServiceProvider serviceProvider,
                                              INamedServiceFactory <IOutputObjectAccessorProvider> accessorProviderFactory)
 {
     this.serviceProvider         = serviceProvider;
     this.accessorProviderFactory = accessorProviderFactory;
 }
Example #15
0
 public DbNumeratorEntityRepository(IDbContextFactory dbContextFactory, INamedServiceFactory <IEntityNameResolver> entityNameResolverFactory)
 {
     _dbContextFactory          = dbContextFactory;
     _entityNameResolverFactory = entityNameResolverFactory;
 }
Example #16
0
 public ExportClassifierListHandler(INamedServiceFactory <IClassifierRepository> repositoryFactory)
 {
     _repositoryFactory = repositoryFactory;
 }
Example #17
0
 public GetAutomationConditionTypeListHandler(
     INamedServiceFactory <IAutomationConditionProvider> providerFactory)
 {
     _providerFactory = providerFactory;
 }
 public ExecutionRequestRouter(INamedServiceFactory <IExecutionProcessor> processorFactory,
                               IServiceProvider serviceProvider)
 {
     this.processorFactory = processorFactory;
     this.serviceProvider  = serviceProvider;
 }
Example #19
0
 public MustacheTemplateRenderer(INamedServiceFactory <IClassifierRepository> classifierRepositoryFactory)
 {
     _classifierRepositoryFactory = classifierRepositoryFactory;
 }
Example #20
0
 public CreateClassifierHandler(INamedServiceFactory <IClassifierRepository> repositoryFactory)
 {
     _repositoryFactory = repositoryFactory;
 }
 public DocumentNumberTagResolver(IRepository <Document> repository, INamedServiceFactory <IClassifierRepository> classifierRepositoryFactory)
 {
     _repository = repository;
     _classifierRepositoryFactory = classifierRepositoryFactory;
 }
Example #22
0
 public DefaultAutomationContextProvider(INamedServiceFactory <IAutomationContextProvider> serviceFactory)
 {
     _serviceFactory = serviceFactory;
 }
Example #23
0
 public DefaultRecipientResolver(INamedServiceFactory <IRecipientResolver> recipientResolverFactory)
 {
     _recipientResolverFactory = recipientResolverFactory;
 }