Example #1
0
        public Task <RiskConstraintResolution> ApplyAsync(
            string blockchainType,
            string blockchainAssetId,
            OperationType?operationType,
            Operation operation)
        {
            var resolution = operation.Amount > _maxAmount
                ? RiskConstraintResolution.Violated($"Operation amount {operation.Amount} > {_maxAmount}")
                : RiskConstraintResolution.Passed;

            return(Task.FromResult(resolution));
        }
        public async Task <RiskConstraintResolution> ApplyAsync(
            string blockchainType,
            string blockchainAssetId,
            OperationType?operationType,
            Operation operation)
        {
            var aggregatedAmount = await _statisticsRepository.GetAggregatedAmountForTheLastPeriodAsync(
                blockchainType,
                blockchainAssetId,
                operationType,
                _period);

            return(aggregatedAmount + operation.Amount > _maxAmount
                ? RiskConstraintResolution.Violated($"Aggregated operations amount {aggregatedAmount} + {operation.Amount} > {_maxAmount} for the last {_period}")
                : RiskConstraintResolution.Passed);
        }
Example #3
0
        public async Task <RiskConstraintResolution> ApplyAsync(
            string blockchainType,
            string blockchainAssetId,
            OperationType?operationType,
            Operation operation)
        {
            var operationsCount = await _statisticsRepository.GetOperationsCountForTheLastPeriodAsync(
                blockchainType,
                blockchainAssetId,
                operationType,
                _period);

            return(operationsCount + 1 > _maxOperationsCount
                ? RiskConstraintResolution.Violated($"Operations count {operationsCount} + 1 > {_maxOperationsCount} for the last {_period}")
                : RiskConstraintResolution.Passed);
        }