Ejemplo n.º 1
0
 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);
            }
        }
Ejemplo n.º 3
0
        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);
            }
        }