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); }
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); }