Ejemplo n.º 1
0
    private IServiceProvider setup(string envName)
    {
        var hostBuilder = new XtiHostBuilder(XtiEnvironment.Parse(envName));

        hostBuilder.Services.AddSingleton(sp => sp.GetRequiredService <XtiFolder>().AppDataFolder());
        var host = hostBuilder.Build();

        return(host.Scope());
    }
Ejemplo n.º 2
0
 public XtiFolder(XtiEnvironment env)
 {
     this.env = env;
     path     = Environment.GetEnvironmentVariable("XTI_Dir") ?? "c:\\xti";
     if (string.IsNullOrWhiteSpace(path))
     {
         path = "c:\\xti";
     }
 }
    private IServiceProvider setup(string envName = "Test")
    {
        Environment.SetEnvironmentVariable("DOTNET_ENVIRONMENT", envName);
        var xtiEnv      = XtiEnvironment.Parse(envName);
        var hostBuilder = new XtiHostBuilder(xtiEnv);

        hostBuilder.Services.AddFileSecretCredentials(xtiEnv);
        var host = hostBuilder.Build();

        return(host.Scope());
    }
Ejemplo n.º 4
0
 public XtiHostBuilder(XtiEnvironment xtiEnv, string appName, string appType, string[] args)
 {
     Environment.SetEnvironmentVariable("DOTNET_ENVIRONMENT", xtiEnv.EnvironmentName);
     Configuration = new ConfigurationBuilder();
     Configuration.UseXtiConfiguration(xtiEnv, appName, appType, args);
     Services = new ServiceCollection();
     Services.AddSingleton <IHostEnvironment>(new HostingEnvironment
     {
         EnvironmentName = xtiEnv.EnvironmentName
     });
     Services.AddSingleton(_ => Configuration.Build());
     Services.AddSingleton(sp => (IConfiguration)sp.GetRequiredService <IConfigurationRoot>());
     Services.AddSingleton <XtiFolder>();
     Services.AddSingleton(_ => xtiEnv);
 }
Ejemplo n.º 5
0
    public static void AddXtiDataProtection(this IServiceCollection services, XtiEnvironment environment)
    {
        const string appName    = "XTI_App";
        var          keyDirPath = new XtiFolder(environment)
                                  .SharedAppDataFolder()
                                  .WithSubFolder("Keys")
                                  .Path();

        services
        .AddDataProtection
        (
            options => options.ApplicationDiscriminator = appName
        )
        .PersistKeysToFileSystem(new DirectoryInfo(keyDirPath))
        .SetApplicationName(appName);
    }
Ejemplo n.º 6
0
 public static void AddFileSecretCredentials(this IServiceCollection services, XtiEnvironment environment)
 {
     services.AddXtiDataProtection(environment);
     services.AddSingleton <ISecretCredentialsFactory>(sp =>
     {
         var xtiFolder     = new XtiFolder(environment);
         var dataProtector = sp.GetDataProtector(new[] { "XTI_Secrets" });
         return(new FileSecretCredentialsFactory(xtiFolder, dataProtector));
     });
     services.AddSingleton(sp => (SecretCredentialsFactory)sp.GetRequiredService <ISecretCredentialsFactory>());
     services.AddSingleton <ISharedSecretCredentialsFactory>(sp =>
     {
         var xtiFolder     = new XtiFolder(environment);
         var dataProtector = sp.GetDataProtector(new[] { "XTI_Secrets" });
         return(new SharedFileSecretCredentialsFactory(xtiFolder, dataProtector));
     });
 }
Ejemplo n.º 7
0
 internal AppDataFolder WithHostEnvironment(XtiEnvironment env)
 => WithSubFolder(env.EnvironmentName);
Ejemplo n.º 8
0
 public XtiHostBuilder(XtiEnvironment environment, string appName, string appType)
     : this(environment, appName, appType, new string[0])
 {
 }
Ejemplo n.º 9
0
 public XtiHostBuilder(XtiEnvironment environment)
     : this(environment, "", "", new string[0])
 {
 }
Ejemplo n.º 10
0
 public void UseShared() => Environment      = XtiEnvironment.Shared;
Ejemplo n.º 11
0
 public void UseStaging() => Environment     = XtiEnvironment.Staging;
Ejemplo n.º 12
0
 public void UseTest() => Environment        = XtiEnvironment.Test;
Ejemplo n.º 13
0
 public void UseDevelopment() => Environment = XtiEnvironment.Development;
Ejemplo n.º 14
0
 public void UseEnvironment(string envName) => Environment = XtiEnvironment.Parse(envName);
Ejemplo n.º 15
0
 public XtiEnvironmentAccessor(XtiEnvironment environment)
 {
     Environment = environment;
 }
Ejemplo n.º 16
0
 public void UseProduction() => Environment  = XtiEnvironment.Production;
Ejemplo n.º 17
0
    public static IConfigurationBuilder UseXtiConfiguration(this IConfigurationBuilder config, XtiEnvironment environment, string appName, string appType, string[] args)
    {
        config.Sources.Clear();
        var xtiFolder     = new XtiFolder(environment);
        var settingsPaths = xtiFolder.SettingsPaths(appName, appType);

        foreach (var path in settingsPaths)
        {
            config.AddJsonFile
            (
                path,
                optional: true,
                reloadOnChange: true
            );
        }
        config.AddEnvironmentVariables();
        if (args != null)
        {
            config.AddCommandLine(args);
        }
        return(config);
    }