Пример #1
0
        /// <summary>
        /// Registers a <see cref="ILogsWriter"/> with the default <see cref="CVLoggerProvider"/>.
        /// </summary>
        /// <typeparam name="TLogsWriter">Implementation of <see cref="ILogsWriter"/>.</typeparam>
        /// <param name="serviceManager"><see cref="IServiceProducer"/>.</param>
        /// <returns>Provided <see cref="IServiceProducer"/>.</returns>
        public static IServiceProducer RegisterLogWriter <TLogsWriter>(this IServiceProducer serviceManager)
            where TLogsWriter : ILogsWriter
        {
            serviceManager.ThrowIfNull(nameof(serviceManager));

            serviceManager.RegisterSingleton <ILogsWriter, TLogsWriter>();
            serviceManager.RegisterScoped <ILoggerFactory, LoggerFactory>(sp =>
            {
                var factory = new LoggerFactory();
                factory.AddProvider(new CVLoggerProvider(sp.GetService <ILogsWriter>()));
                return(factory);
            });

            return(serviceManager);
        }
Пример #2
0
        public static void RegisterServices(IServiceProducer serviceProducer)
        {
            serviceProducer.ThrowIfNull(nameof(serviceProducer));

            serviceProducer.RegisterSingleton <ViewManager>();
            serviceProducer.RegisterSingleton <IConfigurationManager, ConfigurationManager>();
            serviceProducer.RegisterSingleton <ILiteDatabase, LiteDatabase>(sp => new LiteDatabase("Daybreak.db"));
            serviceProducer.RegisterSingleton <IMutexHandler, MutexHandler>();
            serviceProducer.RegisterSingleton <IShortcutManager, ShortcutManager>();
            serviceProducer.RegisterScoped <ICredentialManager, CredentialManager>();
            serviceProducer.RegisterScoped <IApplicationLauncher, ApplicationLauncher>();
            serviceProducer.RegisterScoped <IScreenshotProvider, ScreenshotProvider>();
            serviceProducer.RegisterScoped <IBloogumClient, BloogumClient>();
            serviceProducer.RegisterScoped <IApplicationUpdater, ApplicationUpdater>();
            serviceProducer.RegisterScoped <IBuildTemplateManager, BuildTemplateManager>();
            serviceProducer.RegisterScoped <IIconRetriever, IconRetriever>();
            serviceProducer.RegisterScoped <IPrivilegeManager, PrivilegeManager>();
            serviceProducer.RegisterScoped <IScreenManager, ScreenManager>();
            serviceProducer.RegisterLogWriter <ILogsManager, JsonLogsManager>();
        }