public void Configure(RiskConstraintsGroupConfiguration groupConfiguration) { foreach (var constraintConfiguration in groupConfiguration.Constraints) { ConfigureConstraint(groupConfiguration, constraintConfiguration); } }
public void Initialize() { for (var i = 0; i < _riskConstraintsGroupsSettings.Count; ++i) { var groupSettings = _riskConstraintsGroupsSettings[i]; _log.Info($"Configuring risk constraints group [{i}]...", new { groupSettings.Operation, groupSettings.Blockchain, groupSettings.Asset }); var groupConfiguration = new RiskConstraintsGroupConfiguration ( operationType: groupSettings.Operation, blockchainType: groupSettings.Blockchain, blockchainAssetId: groupSettings.Asset, constraints: groupSettings.Constraints .Select(s => new RiskConstraintConfiguration(s.Name, s.Parameters)) .ToArray() ); _riskConstraintsRegistryConfigurator.Configure(groupConfiguration); } }
private void ConfigureConstraint( RiskConstraintsGroupConfiguration groupConfiguration, RiskConstraintConfiguration constraintConfiguration) { var r = _constraintsRegistry; var g = groupConfiguration; var constraint = _riskConstraintsFactory.Create(constraintConfiguration); if (g.OperationType.HasValue && !string.IsNullOrWhiteSpace(g.BlockchainType) && !string.IsNullOrWhiteSpace(g.BlockchainAssetId)) { r.Add(g.BlockchainType, g.BlockchainAssetId, g.OperationType.Value, constraint); } else if (g.OperationType.HasValue && !string.IsNullOrWhiteSpace(g.BlockchainType)) { r.Add(g.BlockchainType, g.OperationType.Value, constraint); } else if (g.OperationType.HasValue) { r.Add(g.OperationType.Value, constraint); } else if (!string.IsNullOrWhiteSpace(g.BlockchainType) && !string.IsNullOrWhiteSpace(g.BlockchainAssetId)) { r.Add(g.BlockchainType, g.BlockchainAssetId, constraint); } else if (!string.IsNullOrWhiteSpace(g.BlockchainType)) { r.Add(g.BlockchainType, constraint); } else { r.Add(constraint); } }