public BaseResponse <Simulation> ChangeConfiguration(Guid scenarioId, BlockchainConfiguration configuration) { if (configuration == null) { return(new ErrorResponse <Simulation>("The configuration cannot be null!", null)); } var simulation = _simulationStorage.GetSimulation(scenarioId); if (simulation == null) { return(new ErrorResponse <Simulation>($"Could not find simulation with scenario id:{scenarioId}", null)); } if (simulation.Status != SimulationStatuses.ReadyToRun) { return(new ErrorResponse <Simulation>("You can not make changes while simulation is running", simulation)); } simulation.BlockchainConfiguration = configuration; _simulationStorage.SaveChanges(); return(new SuccessResponse <Simulation>("The configuration has been changed!", simulation)); }
protected override void Load(ContainerBuilder builder) { builder.RegisterType <BlockchainWalletsClient>() .As <IBlockchainWalletsClient>() .WithParameter(TypedParameter.From(_blockchainWalletsServiceClientSettings.ServiceUrl)) .SingleInstance(); var blockchainConfigurations = new Dictionary <string, BlockchainConfiguration>(); foreach (var blockchain in _blockchainsIntegrationSettings.Blockchains.Where(b => !b.IsDisabled)) { var blockchainConfiguration = new BlockchainConfiguration ( blockchain.HotWalletAddress, blockchain.AreCashoutsDisabled, blockchain.CashoutAggregation != null ? new CashoutsAggregationConfiguration( blockchain.CashoutAggregation.AgeThreshold, blockchain.CashoutAggregation.CountThreshold): null ); blockchainConfigurations.Add(blockchain.Type, blockchainConfiguration); } builder.RegisterType <BlockchainConfigurationsProvider>() .As <IBlockchainConfigurationsProvider>() .WithParameter(TypedParameter.From <IReadOnlyDictionary <string, BlockchainConfiguration> >(blockchainConfigurations)) .SingleInstance(); }
public BlockchainMonitorService(IBlockchainClientService clientService, IConfiguration configuration, ILoggerFactory loggerFactory, IServiceScopeFactory scopeFactory) { _dbContext = scopeFactory.CreateScopedService <LocalPersistenceContext>(); _configuration = configuration.GetConfiguration <BlockchainConfiguration>(); _logger = loggerFactory.CreateLogger(GetType()); _clientService = clientService; }
public ActionResult <BaseResponse> ChangeConfiguration(Guid scenarioId, [FromBody] BlockchainConfiguration configuration) { var mappedConfiguration = LocalMapper.Map <BusinessLogic.Model.Scenarios.BlockchainConfiguration>(configuration); return(_simulationService.ChangeConfiguration(scenarioId, mappedConfiguration) .GetActionResult <BusinessLogic.Model.Scenarios.Simulation, Simulation>(this)); }