public async Task TryToProcessPaymentTransferEventEvent_InvalidBalance_SuccessfullyProcessedWithWarning(long amount)
        {
            var campaignResponseModel = new BurnRuleResponse {
                Title = "burnRule"
            };

            _campaignClientMock.Setup(x => x.History.GetBurnRuleByIdAsync(It.IsAny <Guid>()))
            .ReturnsAsync(campaignResponseModel);

            _paymentTransferRepoMock.Setup(x => x.AddPaymentTransferAsync(It.IsAny <PaymentTransferDto>()))
            .Returns(Task.CompletedTask)
            .Verifiable();

            var paymentTransfer = new PaymentTransferDto
            {
                AssetSymbol = "asset",
                TransferId  = "transferId",
                Amount      = amount,
                CustomerId  = "customerId",
                InvoiceId   = "invoiceId",
                BurnRuleId  = "3cfd1d93-34e4-44a5-9ccd-96734b24faa4",
            };

            var operationsService = CreateSutInstance();

            await operationsService.ProcessPaymentTransferTokensReservedEventAsync(paymentTransfer);

            _paymentTransferRepoMock.Verify();
        }
コード例 #2
0
        private async Task <(decimal AmountInCurrency, Money18 AmountInTokens, ConversionSource ConversionSource)> GetBurnRuleConversionRate(BurnRuleResponse burnRule)
        {
            if (burnRule.UsePartnerCurrencyRate)
            {
                var partnerIds = burnRule.PartnerIds;

                return(await GetConversionRateForPartnerRules(partnerIds != null?partnerIds.Distinct().ToList() : new List <Guid>()));
            }

            return(burnRule.AmountInCurrency.Value, burnRule.AmountInTokens.Value, ConversionSource.BurnRule);
        }