Beispiel #1
0
        public static T GetOrAdd <T>(
            [NotNull] this IServiceProviderDictionary serviceProviderDictionary,
            string key,
            [NotNull] Func <T> factory
            )
            where T : class
        {
            if (serviceProviderDictionary == null)
            {
                throw new ArgumentNullException(nameof(serviceProviderDictionary));
            }

            if (factory == null)
            {
                throw new ArgumentNullException(nameof(factory));
            }

            if (!(serviceProviderDictionary[key] is T value))
            {
                value = factory();
                serviceProviderDictionary.Set(value);
            }

            return(value);
        }
 public CCBuilder(
     IConventionScanner scanner,
     IAssemblyProvider assemblyProvider,
     IAssemblyCandidateFinder assemblyCandidateFinder,
     IServiceProviderDictionary properties
     ) : base(scanner, assemblyProvider, assemblyCandidateFinder, properties)
 {
 }
Beispiel #3
0
 public HostBuilder(
     IConventionScanner scanner,
     IAssemblyCandidateFinder assemblyCandidateFinder,
     IAssemblyProvider assemblyProvider,
     DiagnosticSource diagnosticSource,
     IServiceProviderDictionary serviceProperties
     ) : base(scanner, assemblyCandidateFinder, assemblyProvider, diagnosticSource, serviceProperties)
 {
 }
Beispiel #4
0
        /// <summary>
        /// Check if this is a test host (to allow conventions to behave differently during unit tests)
        /// </summary>
        /// <param name="serviceProviderDictionary">The properties</param>
        public static bool IsUnitTestHost([NotNull] this IServiceProviderDictionary serviceProviderDictionary)
        {
            if (serviceProviderDictionary == null)
            {
                throw new ArgumentNullException(nameof(serviceProviderDictionary));
            }

            return(serviceProviderDictionary.GetHostType() == HostType.UnitTestHost);
        }
Beispiel #5
0
        /// <summary>
        /// Get a value by type from the context
        /// </summary>
        /// <typeparam name="T">The type of the value</typeparam>
        /// <param name="serviceProviderDictionary">The properties</param>
        /// <param name="value">The value to save</param>
        public static void Set <T>([NotNull] this IServiceProviderDictionary serviceProviderDictionary, T value)
        {
            if (serviceProviderDictionary == null)
            {
                throw new ArgumentNullException(nameof(serviceProviderDictionary));
            }

            serviceProviderDictionary[typeof(T)] = value;
        }
Beispiel #6
0
        public static T Get <T>([NotNull] this IServiceProviderDictionary serviceProviderDictionary, string key)
        {
            if (serviceProviderDictionary == null)
            {
                throw new ArgumentNullException(nameof(serviceProviderDictionary));
            }

            return((T)serviceProviderDictionary[key]);
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="RocketHostBuilder" /> class.
 /// </summary>
 /// <param name="builder">The builder.</param>
 /// <param name="scanner">The scanner.</param>
 /// <param name="assemblyCandidateFinder">The assembly candidate finder.</param>
 /// <param name="assemblyProvider">The assembly provider.</param>
 /// <param name="diagnosticSource">The diagnostic source.</param>
 /// <param name="serviceProperties">The service properties.</param>
 public RocketHostBuilder(
     IHostBuilder builder,
     IConventionScanner scanner,
     IAssemblyCandidateFinder assemblyCandidateFinder,
     IAssemblyProvider assemblyProvider,
     DiagnosticSource diagnosticSource,
     IServiceProviderDictionary serviceProperties
     ) : base(scanner, assemblyCandidateFinder, assemblyProvider, diagnosticSource, serviceProperties)
 {
     Builder = builder;
     Logger  = new DiagnosticLogger(diagnosticSource);
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="ConventionTestHost" /> class.
 /// </summary>
 /// <param name="scanner">The scanner.</param>
 /// <param name="assemblyCandidateFinder">The assembly candidate finder.</param>
 /// <param name="assemblyProvider">The assembly provider.</param>
 /// <param name="diagnosticSource">The diagnostic source.</param>
 /// <param name="serviceProperties">The service properties.</param>
 /// <param name="loggerFactory">The logger factory.</param>
 /// <param name="environment">The environment.</param>
 internal ConventionTestHost(
     IConventionScanner scanner,
     IAssemblyCandidateFinder assemblyCandidateFinder,
     IAssemblyProvider assemblyProvider,
     DiagnosticSource diagnosticSource,
     IServiceProviderDictionary serviceProperties,
     ILoggerFactory loggerFactory,
     IRocketEnvironment environment
     ) : base(scanner, assemblyCandidateFinder, assemblyProvider, diagnosticSource, serviceProperties)
 {
     serviceProperties.Set(HostType.UnitTestHost);
     _loggerFactory = loggerFactory;
     _environment   = environment;
     _logger        = ServiceProperties.Get <ILogger>();
 }
Beispiel #9
0
 /// <summary>
 /// Initializes a new instance of the <see cref="RocketFunctionHostBuilder"/> class.
 /// </summary>
 /// <param name="builder">The builder.</param>
 /// <param name="functionsAssembly">The functions assembly.</param>
 /// <param name="startupInstance">The startup instance.</param>
 /// <param name="environment">The environment.</param>
 /// <param name="scanner">The scanner.</param>
 /// <param name="assemblyCandidateFinder">The assembly candidate finder.</param>
 /// <param name="assemblyProvider">The assembly provider.</param>
 /// <param name="diagnosticSource">The diagnostic source.</param>
 /// <param name="serviceProviderDictionary">The service provider dictionary of values</param>
 public RocketFunctionHostBuilder(
     IWebJobsBuilder builder,
     Assembly functionsAssembly,
     object startupInstance,
     IRocketEnvironment environment,
     IConventionScanner scanner,
     IAssemblyCandidateFinder assemblyCandidateFinder,
     IAssemblyProvider assemblyProvider,
     DiagnosticSource diagnosticSource,
     IServiceProviderDictionary serviceProviderDictionary) : base(scanner, assemblyCandidateFinder, assemblyProvider, diagnosticSource, serviceProviderDictionary)
 {
     _startupInstance  = startupInstance;
     _environment      = environment ?? CreateEnvironment();
     _logger           = new DiagnosticLogger(DiagnosticSource);
     Builder           = builder;
     FunctionsAssembly = functionsAssembly;
 }
        /// <summary>
        /// Initializes a new instance of the <see cref="ConventionHostBuilder{TSelf}" /> class.
        /// </summary>
        /// <param name="scanner">The scanner.</param>
        /// <param name="assemblyCandidateFinder">The assembly candidate finder.</param>
        /// <param name="assemblyProvider">The assembly provider.</param>
        /// <param name="diagnosticSource">The diagnostic source.</param>
        /// <param name="serviceProperties">The properties.</param>
        protected ConventionHostBuilder(
            IConventionScanner scanner,
            IAssemblyCandidateFinder assemblyCandidateFinder,
            IAssemblyProvider assemblyProvider,
            DiagnosticSource diagnosticSource,
            IServiceProviderDictionary serviceProperties
            )
        {
            Scanner = scanner;
            AssemblyCandidateFinder = assemblyCandidateFinder;
            AssemblyProvider        = assemblyProvider;
            DiagnosticSource        = diagnosticSource;
            ServiceProperties       = serviceProperties ?? new ServiceProviderDictionary();

            if (!Properties.TryGetValue(typeof(IConventionScanner), out var _))
            {
                Properties[typeof(IConventionScanner)] = scanner;
            }

            if (!Properties.TryGetValue(typeof(IAssemblyProvider), out var _))
            {
                Properties[typeof(IAssemblyProvider)] = assemblyProvider;
            }

            if (!Properties.TryGetValue(typeof(IAssemblyCandidateFinder), out var _))
            {
                Properties[typeof(IAssemblyCandidateFinder)] = assemblyCandidateFinder;
            }

            if (!Properties.TryGetValue(typeof(DiagnosticSource), out var _))
            {
                Properties[typeof(DiagnosticSource)] = diagnosticSource;
            }

            if (!Properties.TryGetValue(typeof(ILogger), out var _))
            {
                Properties[typeof(ILogger)] = new DiagnosticLogger(diagnosticSource);
            }
        }
Beispiel #11
0
 public CCBuilder(IConventionScanner scanner, IServiceProviderDictionary properties) : base(
         scanner,
         properties
         )
 {
 }
Beispiel #12
0
 /// <summary>
 /// Check if this is a test host (to allow conventions to behave differently during unit tests)
 /// </summary>
 /// <param name="serviceProviderDictionary">The properties</param>
 internal static HostType GetHostType(this IServiceProviderDictionary serviceProviderDictionary)
 => serviceProviderDictionary.TryGetValue(typeof(HostType), out var hostType)
         ? (HostType)hostType !
         : HostType.Undefined;