Ejemplo n.º 1
0
    public static void Run(Action <LogicSetup> setup)
    {
        var ls = new LogicSetup()
                 .DefineAction(ConsoleKey.X, "Exit.", () =>
        {
            return(LogicSetup.Engine.Terminate);
        });

        setup(ls);

        ls.Run();
    }
Ejemplo n.º 2
0
    public static void Run( Action<LogicSetup> setup )
    {
        var ls = new LogicSetup()
            .DefineAction( ConsoleKey.X, "Exit.", () =>
            {
                return LogicSetup.Engine.Terminate;
            } );

        setup( ls );

        ls.Run();
    }
Ejemplo n.º 3
0
        /// <summary>
        ///     Compose the application according to the supplied configuration
        /// </summary>
        /// <param name="services">The service collection to register services into.</param>
        /// <param name="applicationConfiguration">Application configuration.</param>
        public static void Configure(IServiceCollection services, ApplicationConfiguration applicationConfiguration)
        {
            if (services == null)
            {
                throw new ArgumentNullException(nameof(services));
            }

            services.AddSingleton(applicationConfiguration);
            services.AddSingleton(typeof(ExecutionEnvironment), implementationInstance: applicationConfiguration.Environment);
            services.AddHttpContextAccessor();

            services.AddSingleton <IRandomSource, DefaultRandomSource>();

            SecurityServices.ConfigureWalletSalt(services: services, walletSaltString: applicationConfiguration.WalletSalt);

            EthereumAccountsSetup.Configure(services);

            string configurationFolder = ApplicationConfigLocator.ConfigurationFilesPath;

            AlertDispatcherSetup.Configure(services: services, configuration: applicationConfiguration.Configuration, pluginsPath: configurationFolder);

            CommonMiddlewareServicesSetup.Configure(services: services);
            CommonServicesSetup.Configure(services);

            ContractsSetup.Configure(services);

            EthereumServices.ConfigureEthereumServices(services: services, configuration: applicationConfiguration);

            DatabaseSetup.Configure(services: services, configuration: applicationConfiguration.SqlServerConfiguration);

            ServiceInterfacesSetup.Configure(services);
            ServiceInterfaceHubSetup.Configure(services);

            ObjectLockingSetup.Configure(serviceCollection: services, applicationConfiguration.Environment.IsLocalOrTest());

            LogicSetup.Configure(services: services,
                                 faucetConfiguration: applicationConfiguration.FaucetConfiguration,
                                 faucetBalanceConfiguration: applicationConfiguration.FaucetBalanceConfiguration,
                                 houseAlerterConfiguration: applicationConfiguration.HouseBalanceConfiguration);
        }