Exemplo n.º 1
0
        public static DependencyCollection AddJsonConverter(this DependencyCollection dependencies,
                                                            IJsonConverter converter)
        {
            dependencies.Add(new InstanceDependency(ConverterContracts, converter));

            return(dependencies);
        }
Exemplo n.º 2
0
        public static DependencyCollection AddEnvironmentSettings(this DependencyCollection dependencies)
        {
            var dependency = new InstanceDependency(SettingsSourceContract, new EnvironmentSource());

            dependencies.Add(dependency);

            return(dependencies);
        }
Exemplo n.º 3
0
        public static DependencyCollection AddInstance <TContract>(
            this DependencyCollection dependencies,
            TContract instance)
            where TContract : class
        {
            var contracts = new[] { Typeof <TContract> .Raw };

            return(dependencies.Add(new InstanceDependency(contracts, instance)));
        }
Exemplo n.º 4
0
        public static DependencyCollection AddDefaultConsoleLogWriter(this DependencyCollection dependencies,
                                                                      LogLevel level = LogLevel.Debug)
        {
            var dependency = new InstanceDependency(LogWriterContracts, new DefaultConsoleWriter(level));

            dependencies.Add(dependency);

            return(dependencies);
        }
Exemplo n.º 5
0
        public static DependencyCollection AddJsonSettings(this DependencyCollection dependencies,
                                                           string path = "appsettings.json", bool required = false)
        {
            var dependency = new InstanceDependency(SettingsSourceContract, new JsonFileSource(path, required));

            dependencies.Add(dependency);

            return(dependencies);
        }
Exemplo n.º 6
0
        public static DependencyCollection AddCommandLineSettings(this DependencyCollection dependencies,
                                                                  string[] commandLineArgs)
        {
            var dependency = new InstanceDependency(SettingsSourceContract, new CommandLineSource(commandLineArgs));

            dependencies.Add(dependency);

            return(dependencies);
        }
Exemplo n.º 7
0
        public static DependencyCollection AddDefaultFileLogWriter(this DependencyCollection dependencies,
                                                                   string?filePath = null, LogLevel level = LogLevel.Debug)
        {
            filePath ??= $"{AppDomain.CurrentDomain.FriendlyName}.log";

            var dependency = new InstanceDependency(LogWriterContracts, new DefaultFileWriter(filePath, level));

            dependencies.Add(dependency);

            return(dependencies);
        }
Exemplo n.º 8
0
        public static DependencyCollection AddAssets(this DependencyCollection dependencies,
                                                     IEntitySource <Asset> assetSource)
        {
            if (assetSource == null)
            {
                throw Error.Null(nameof(assetSource));
            }

            var dependency = new InstanceDependency(AssetSourceContracts, assetSource);

            dependencies.Add(dependency);

            return(dependencies);
        }
Exemplo n.º 9
0
        private static void AddTransient(DependencyCollection dependencies, ServiceDescriptor descriptor)
        {
            if (descriptor.ImplementationFactory == null)
            {
                dependencies.AddTransient(descriptor.ServiceType, descriptor.ImplementationType);
            }
            else
            {
                var contracts = new[] { descriptor.ServiceType };
                var resolver  = BuildDelegateResolver(descriptor);

                dependencies.Add(new TransientDependency(contracts, resolver));
            }
        }
Exemplo n.º 10
0
        public static DependencyCollection AddAssets(
            this DependencyCollection dependencies,
            Func <IEntitySourceContext <Asset>, IEnumerable <Asset> > assets)
        {
            if (assets == null)
            {
                throw Error.Null(nameof(assets));
            }

            var instance   = new DelegateSource <Asset>(assets);
            var dependency = new InstanceDependency(AssetSourceContracts, instance);

            dependencies.Add(dependency);

            return(dependencies);
        }
Exemplo n.º 11
0
        private static void AddSingleton(DependencyCollection dependencies, ServiceDescriptor descriptor)
        {
            if (descriptor.ImplementationInstance != null)
            {
                dependencies.AddInstance(descriptor.ServiceType, descriptor.ImplementationInstance);
            }
            else if (descriptor.ImplementationFactory == null)
            {
                dependencies.AddSingleton(descriptor.ServiceType, descriptor.ImplementationType);
            }
            else
            {
                var contracts = new[] { descriptor.ServiceType };
                var resolver  = BuildDelegateResolver(descriptor);

                dependencies.Add(new SingletonDependency(contracts, resolver));
            }
        }