Ejemplo n.º 1
0
 public static ContainerBuilder UseForPeghTest(this ContainerBuilder builder, ICsArgumentPrompter csArgumentPrompter)
 {
     RegisterDefaultTypes(builder);
     builder.RegisterType <SecretRepository>().As <ISecretRepository>();
     builder.RegisterType <PeghEnvironment>().As <IPeghEnvironment>();
     builder.RegisterType <Disguiser>().As <IDisguiser>();
     builder.RegisterInstance(csArgumentPrompter).As <ICsArgumentPrompter>();
     return(builder);
 }
Ejemplo n.º 2
0
    public SecretRepository(ICsArgumentPrompter csArgumentPrompter, ICsLambdaCompiler csLambdaCompiler, IDisguiser disguiser, IPeghEnvironment peghEnvironment, IXmlDeserializer xmlDeserializer, IXmlSerializer xmlSerializer, IXmlSchemer xmlSchemer)
    {
        CsArgumentPrompter = csArgumentPrompter;
        CsLambdaCompiler   = csLambdaCompiler;
        Disguiser          = disguiser;
        PeghEnvironment    = peghEnvironment;
        XmlDeserializer    = xmlDeserializer;
        XmlSchemer         = xmlSchemer;
        XmlSerializer      = xmlSerializer;
        Values             = new Dictionary <string, object>();
        var folder = PeghEnvironment.RootWorkFolder + @"\SecretSamples\";

        if (!Directory.Exists(folder))
        {
            Directory.CreateDirectory(folder);
        }
        folder = PeghEnvironment.RootWorkFolder + @"\SecretRepository\";
        if (!Directory.Exists(folder))
        {
            Directory.CreateDirectory(folder);
        }
    }
Ejemplo n.º 3
0
 public static async Task <IServiceCollection> UseVishizhukelDvinAndPeghAsync(this IServiceCollection services, string applicationName, ICsArgumentPrompter csArgumentPrompter)
 {
     return(await UseVishizhukelAndPeghOptionallyDvinAsync(services, applicationName, csArgumentPrompter, true));
 }
Ejemplo n.º 4
0
        private static async Task <ContainerBuilder> UseVishizhukelAndPeghOptionallyDvinAsync(ContainerBuilder builder, string applicationName, ICsArgumentPrompter csArgumentPrompter, bool useDvin)
        {
            if (useDvin)
            {
                builder.UseDvinAndPegh(applicationName, csArgumentPrompter);
            }
            else
            {
                builder.UsePegh(applicationName, csArgumentPrompter);
            }

            var securedHttpGateSettings = await CreateSecuredHttpGateSettingsAsync(applicationName, csArgumentPrompter);

            builder.RegisterInstance <ISecuredHttpGateSettings>(securedHttpGateSettings);

            builder.RegisterType <HttpGate>().As <IHttpGate>();
            builder.RegisterType <SecuredHttpGate>().As <ISecuredHttpGate>();
            builder.RegisterType <TextFileWriter>().As <ITextFileWriter>();
            builder.RegisterType <WebFileSource>().As <IWebFileSource>();
            return(builder);
        }
Ejemplo n.º 5
0
 public static async Task <ContainerBuilder> UseVishizhukelDvinAndPeghAsync(this ContainerBuilder builder, string applicationName, ICsArgumentPrompter csArgumentPrompter)
 {
     return(await UseVishizhukelAndPeghOptionallyDvinAsync(builder, applicationName, csArgumentPrompter, true));
 }
Ejemplo n.º 6
0
 public static IServiceCollection UseFusionNuclideProtchAndGitty(this IServiceCollection services, ICsArgumentPrompter csArgumentPrompter)
 {
     services.UseNuclideProtchGittyAndPegh(csArgumentPrompter);
     services.AddTransient <INugetPackageUpdater, NugetPackageUpdater>();
     services.AddTransient <INugetPackageToPushFinder, NugetPackageToPushFinder>();
     services.AddTransient <IAutoCommitterAndPusher, AutoCommitterAndPusher>();
     services.AddTransient <IFolderUpdater, FolderUpdater>();
     services.AddTransient <IChangedBinariesLister, ChangedBinariesLister>();
     services.AddTransient <ICakeBuilder, CakeBuilder>();
     services.AddTransient <IBinariesHelper, BinariesHelper>();
     return(services);
 }
Ejemplo n.º 7
0
 public static ContainerBuilder UseFusionNuclideProtchAndGitty(this ContainerBuilder builder, ICsArgumentPrompter csArgumentPrompter)
 {
     builder.UseNuclideProtchGittyAndPegh(csArgumentPrompter);
     builder.RegisterType <NugetPackageUpdater>().As <INugetPackageUpdater>();
     builder.RegisterType <NugetPackageToPushFinder>().As <INugetPackageToPushFinder>();
     builder.RegisterType <AutoCommitterAndPusher>().As <IAutoCommitterAndPusher>();
     builder.RegisterType <FolderUpdater>().As <IFolderUpdater>();
     builder.RegisterType <ChangedBinariesLister>().As <IChangedBinariesLister>();
     builder.RegisterType <CakeBuilder>().As <ICakeBuilder>();
     builder.RegisterType <BinariesHelper>().As <IBinariesHelper>();
     return(builder);
 }
Ejemplo n.º 8
0
        public static ContainerBuilder UseGittyAndPegh(this ContainerBuilder builder, ICsArgumentPrompter csArgumentPrompter)
        {
            builder.UsePegh(csArgumentPrompter);
            builder.RegisterType <DotNetCakeInstaller>().As <IDotNetCakeInstaller>();
            builder.RegisterType <ProcessRunner>().As <IProcessRunner>();
            builder.RegisterType <EmbeddedCakeScriptReader>().As <IEmbeddedCakeScriptReader>();
            builder.RegisterType <DotNetCakeRunner>().As <IDotNetCakeRunner>();
            builder.RegisterType <GitUtilities>().As <IGitUtilities>();
            builder.RegisterType <GitHubUtilities>().As <IGitHubUtilities>();

            return(builder);
        }
Ejemplo n.º 9
0
    public static ContainerBuilder UsePegh(this ContainerBuilder builder, string applicationName, ICsArgumentPrompter csArgumentPrompter)
    {
        builder.RegisterInstance(csArgumentPrompter).As <ICsArgumentPrompter>();
        builder.RegisterType <CsLambdaCompiler>().As <ICsLambdaCompiler>();
        builder.RegisterType <Disguiser>().As <IDisguiser>();
        builder.RegisterType <FolderDeleter>().As <IFolderDeleter>();
        builder.RegisterType <FolderResolver>().As <IFolderResolver>();
        builder.RegisterType <MethodNamesFromStackFramesExtractor>().As <IMethodNamesFromStackFramesExtractor>();
        builder.RegisterType <PassphraseProvider>().As <IPassphraseProvider>();
        builder.RegisterType <PeghEnvironment>().As <IPeghEnvironment>();
        builder.RegisterType <PrimeNumberGenerator>().As <IPrimeNumberGenerator>();
        builder.RegisterType <SecretRepository>().As <ISecretRepository>();
        builder.RegisterType <SimpleLogReader>().As <ISimpleLogReader>();
        builder.RegisterType <StringCrypter>().As <IStringCrypter>();
        builder.RegisterType <XmlDeserializer>().As <IXmlDeserializer>();
        builder.RegisterType <XmlSerializer>().As <IXmlSerializer>();
        builder.RegisterType <XmlSchemer>().As <IXmlSchemer>();
        LogConfiguration ??= new LogConfiguration(applicationName);
        builder.RegisterInstance(LogConfiguration);
        SimpleLogger ??= new SimpleLogger(LogConfiguration, new SimpleLogFlusher(), new MethodNamesFromStackFramesExtractor());
        builder.RegisterInstance(SimpleLogger);
        builder.RegisterInstance <ILogger>(SimpleLogger);

        return(builder);
    }
Ejemplo n.º 10
0
 public static IServiceCollection UseDvinAndPegh(this IServiceCollection services, ICsArgumentPrompter csArgumentPrompter)
 {
     services.UsePegh(csArgumentPrompter);
     services.AddTransient <IDvinRepository, DvinRepository>();
     return(services);
 }
Ejemplo n.º 11
0
 public static ContainerBuilder UseDvinAndPegh(this ContainerBuilder builder, ICsArgumentPrompter csArgumentPrompter)
 {
     builder.UsePegh(csArgumentPrompter);
     builder.RegisterType <DvinRepository>().As <IDvinRepository>();
     return(builder);
 }
Ejemplo n.º 12
0
        // ReSharper disable once UnusedMember.Global
        public static IServiceCollection UseGittyAndPegh(this IServiceCollection services, ICsArgumentPrompter csArgumentPrompter)
        {
            services.UsePegh(csArgumentPrompter);
            services.AddTransient <IDotNetCakeInstaller, DotNetCakeInstaller>();
            services.AddTransient <IProcessRunner, ProcessRunner>();

            return(services);
        }
Ejemplo n.º 13
0
        public static ContainerBuilder UseGittyAndPegh(this ContainerBuilder builder, ICsArgumentPrompter csArgumentPrompter)
        {
            builder.UsePegh(csArgumentPrompter);
            builder.RegisterType <DotNetCakeInstaller>().As <IDotNetCakeInstaller>();
            builder.RegisterType <ProcessRunner>().As <IProcessRunner>();

            return(builder);
        }
Ejemplo n.º 14
0
        private static async Task <IServiceCollection> UseVishizhukelAndPeghOptionallyDvinAsync(this IServiceCollection services, string applicationName, ICsArgumentPrompter csArgumentPrompter, bool useDvin)
        {
            if (useDvin)
            {
                services.UseDvinAndPegh(applicationName, csArgumentPrompter);
            }
            else
            {
                services.UsePegh(applicationName, csArgumentPrompter);
            }

            var securedHttpGateSettings = await CreateSecuredHttpGateSettingsAsync(applicationName, csArgumentPrompter);

            services.AddSingleton <ISecuredHttpGateSettings>(securedHttpGateSettings);

            services.AddTransient <IHttpGate, HttpGate>();
            services.AddTransient <ISecuredHttpGate, SecuredHttpGate>();
            services.AddTransient <ITextFileWriter, TextFileWriter>();
            services.AddTransient <IWebFileSource, WebFileSource>();
            return(services);
        }
Ejemplo n.º 15
0
    public static IServiceCollection UsePegh(this IServiceCollection services, string applicationName, ICsArgumentPrompter csArgumentPrompter)
    {
        services.AddSingleton(csArgumentPrompter);
        services.AddTransient <ICsLambdaCompiler, CsLambdaCompiler>();
        services.AddTransient <IDisguiser, Disguiser>();
        services.AddTransient <IFolderDeleter, FolderDeleter>();
        services.AddTransient <IFolderResolver, FolderResolver>();
        services.AddTransient <IMethodNamesFromStackFramesExtractor, MethodNamesFromStackFramesExtractor>();
        services.AddTransient <IPassphraseProvider, PassphraseProvider>();
        services.AddTransient <IPeghEnvironment, PeghEnvironment>();
        services.AddTransient <IPrimeNumberGenerator, PrimeNumberGenerator>();
        services.AddTransient <ISecretRepository, SecretRepository>();
        services.AddTransient <ISimpleLogReader, SimpleLogReader>();
        services.AddTransient <IStringCrypter, StringCrypter>();
        services.AddTransient <IXmlDeserializer, XmlDeserializer>();
        services.AddTransient <IXmlSerializer, XmlSerializer>();
        services.AddTransient <IXmlSchemer, XmlSchemer>();
        LogConfiguration ??= new LogConfiguration(applicationName);
        services.AddSingleton(LogConfiguration);
        SimpleLogger ??= new SimpleLogger(LogConfiguration, new SimpleLogFlusher(), new MethodNamesFromStackFramesExtractor());
        services.AddSingleton(SimpleLogger);

        return(services);
    }
Ejemplo n.º 16
0
        private static async Task <SecuredHttpGateSettings> CreateSecuredHttpGateSettingsAsync(string applicationName, ICsArgumentPrompter csArgumentPrompter)
        {
            var peghContainer = new ContainerBuilder().UsePegh(applicationName, csArgumentPrompter).Build();
            var repository    = peghContainer.Resolve <ISecretRepository>();
            var securedHttpGateSettingsSecret = new SecretSecuredHttpGateSettings();
            var errorsAndInfos          = new ErrorsAndInfos();
            var securedHttpGateSettings = await repository.GetAsync(securedHttpGateSettingsSecret, errorsAndInfos);

            if (errorsAndInfos.AnyErrors())
            {
                throw new Exception(errorsAndInfos.ErrorsToString());
            }

            return(securedHttpGateSettings);
        }
Ejemplo n.º 17
0
        // ReSharper disable once UnusedMember.Global
        public static IServiceCollection UseGittyAndPegh(this IServiceCollection services, ICsArgumentPrompter csArgumentPrompter)
        {
            services.UsePegh(csArgumentPrompter);
            services.AddTransient <IDotNetCakeInstaller, DotNetCakeInstaller>();
            services.AddTransient <IProcessRunner, ProcessRunner>();
            services.AddTransient <IEmbeddedCakeScriptReader, EmbeddedCakeScriptReader>();
            services.AddTransient <IDotNetCakeRunner, DotNetCakeRunner>();
            services.AddTransient <IGitUtilities, GitUtilities>();
            services.AddTransient <IGitHubUtilities, GitHubUtilities>();

            return(services);
        }