public static Microsoft.Extensions.Logging.ILogger CreateILoggerFromNLog(bool debug = false)
        {
            // NLog build Example for microsoft ILogger find on :
            // https://stackoverflow.com/questions/56534730/nlog-works-in-asp-net-core-app-but-not-in-net-core-xunit-test-project
            var configuration = new NLog.Config.LoggingConfiguration();

            configuration.AddRuleForAllLevels(new NLog.Targets.ConsoleTarget());
            NLog.Web.NLogBuilder.ConfigureNLog(configuration);

            // Create provider to bridge Microsoft.Extensions.Logging
            var provider = new NLog.Extensions.Logging.NLogLoggerProvider();

            // Create logger
            Microsoft.Extensions.Logging.ILogger logger = provider.CreateLogger(typeof(DnsSrvToolsIntergrationTest).FullName);

            if (debug)
            {
                logger.LogDebug("This is a test of the log system : LogDebug.");
                logger.LogTrace("This is a test of the log system : LogTrace.");
                logger.LogInformation("This is a test of the log system : LogInformation.");
                logger.LogWarning("This is a test of the log system : LogWarning.");
                logger.LogError("This is a test of the log system : LogError.");
                logger.LogCritical("This is a test of the log system : LogCritical.");
            }

            return(logger);
        }
Example #2
0
        public static void Setup(ContainerBuilder builder, bool testingMode = false)
        {
            // Other bindings.
            builder.RegisterType <AppUnitOfWorkFactory>().AsSelf().AsImplementedInterfaces();
            builder.Register(c => c.Resolve <AppUnitOfWorkFactory>().Create()).AsImplementedInterfaces();
            builder.Register(c => new AppDbContext()).AsSelf();
            builder.Register <IUserStore <Domain.UserContext.Entities.User> >(
                c => new UserStore <Domain.UserContext.Entities.User>(c.Resolve <AppDbContext>()))
            .AsImplementedInterfaces();
            builder.Register(
                c => new Domain.UserContext.Services.AppUserManager(
                    c.Resolve <IUserStore <Domain.UserContext.Entities.User> >()))
            .AsImplementedInterfaces();
            builder.RegisterType <DataAccess.Repositories.UserRepository>().AsImplementedInterfaces();
            builder.RegisterType <Domain.UserContext.Services.AppUserManager>().AsSelf();

            // Pipelines container.
            var pipelinesContainer = RegisterPipelines();

            builder.RegisterInstance(pipelinesContainer).As <IMessagePipelineContainer>().SingleInstance();
            builder.RegisterType <DefaultMessagePipelineService>().As <IMessagePipelineService>()
            .InstancePerRequest()
            .InstancePerLifetimeScope();
            builder.RegisterType <Autofac.Extensions.DependencyInjection.AutofacServiceProvider>()
            .As <IServiceProvider>()
            .InstancePerRequest()
            .InstancePerLifetimeScope();

            // Register queries as separate objects.
            builder.RegisterType <Domain.UserContext.Queries.UsersQueries>().AsSelf();
            builder.RegisterType <Domain.TaskContext.Queries.TasksQueries>().AsSelf();
            builder.RegisterType <Domain.TaskContext.Queries.ProjectsQueries>().AsSelf();

            // Emails.
            if (testingMode)
            {
                var emailSender = new Saritasa.Tools.Emails.DummyEmailSender();
                builder.RegisterInstance(emailSender).AsImplementedInterfaces().SingleInstance();
            }
            else
            {
                var emailSender = new Saritasa.Tools.Emails.SmtpClientEmailSender();
                emailSender.AddInterceptor(new FilterEmailInterceptor("*@saritasa.com [email protected]"));
                emailSender.AddInterceptor(new CountEmailsInterceptor());
                builder.RegisterInstance(emailSender).AsImplementedInterfaces().SingleInstance();
            }

            // Logger.
            var nlogProvider  = new NLog.Extensions.Logging.NLogLoggerProvider();
            var loggerFactory = new LoggerFactory();

            loggerFactory.AddProvider(nlogProvider);
            builder.RegisterInstance(loggerFactory).AsImplementedInterfaces().SingleInstance();
        }
        internal static OktaConnectionContext GetConnectionContext(KeyedCollection <string, ConfigParameter> configParameters)
        {
            ProxyConfiguration proxyConfig = null;

            if (!string.IsNullOrWhiteSpace(OktaMAConfigSection.Configuration.ProxyUrl))
            {
                proxyConfig = new ProxyConfiguration()
                {
                    Host = OktaMAConfigSection.Configuration.ProxyUrl
                };
                logger.Info($"Using proxy host {proxyConfig.Host}");
            }

            logger.Info($"Setting up connection to {configParameters[ConfigParameterNames.TenantUrl].Value}");

            System.Net.ServicePointManager.DefaultConnectionLimit = OktaMAConfigSection.Configuration.ConnectionLimit;
            GlobalSettings.ExportThreadCount = OktaMAConfigSection.Configuration.ExportThreads;

            NLog.Extensions.Logging.NLogLoggerProvider f = new NLog.Extensions.Logging.NLogLoggerProvider();
            ILogger nlogger = f.CreateLogger("ext-logger");

            OktaClientConfiguration oktaConfig = new OktaClientConfiguration
            {
                OktaDomain        = configParameters[ConfigParameterNames.TenantUrl].Value,
                Token             = configParameters[ConfigParameterNames.ApiKey].SecureValue.ConvertToUnsecureString(),
                Proxy             = proxyConfig,
                ConnectionTimeout = OktaMAConfigSection.Configuration.HttpClientTimeout,
                MaxRetries        = 8,
            };

            HttpClient httpClient;

            if (OktaMAConfigSection.Configuration.HttpDebugEnabled)
            {
                logger.Warn("WARNING: HTTPS Debugging enabled. Service certificate validation is disabled");

                httpClient = OktaConnectionContext.CreateDebugHttpClient(nlogger, oktaConfig);
            }
            else
            {
                httpClient = DefaultHttpClient.Create(oktaConfig.ConnectionTimeout, proxyConfig, nlogger);
            }

            return(new OktaConnectionContext()
            {
                Client = new OktaClient(oktaConfig, httpClient, nlogger, new DefaultRetryStrategy(oktaConfig.MaxRetries ?? 8, 0, 1))
            });
        }