public async Task AddPaymentTransferAsync(PaymentTransferDto paymentTransfer)
        {
            using (var context = _contextFactory.CreateDataContext())
            {
                var historyEntity  = TransactionHistoryEntity.CreateForPaymentTransferTokensReservation(paymentTransfer);
                var transferEntity = PaymentTransferEntity.Create(paymentTransfer);

                var burnRule =
                    await context.BurnRules.FindAsync(paymentTransfer.BurnRuleId);

                if (burnRule != null && burnRule.BurnRuleName != paymentTransfer.BurnRuleName)
                {
                    burnRule.BurnRuleName = paymentTransfer.BurnRuleName;
                }

                if (burnRule == null)
                {
                    burnRule = BurnRuleEntity.Create(paymentTransfer.BurnRuleId, paymentTransfer.BurnRuleName);
                }

                transferEntity.BurnRule = burnRule;

                context.PaymentTransfers.Add(transferEntity);
                context.TransactionHistories.Add(historyEntity);

                await context.SaveChangesAsync();
            }
        }
Example #2
0
        public async Task AddAsync(PaymentTransferDto paymentTransfer)
        {
            using (var context = _contextFactory.CreateDataContext())
            {
                var entity = PaymentTransferEntity.Create(paymentTransfer);

                context.PaymentTransfers.Add(entity);

                await context.SaveChangesAsync();
            }
        }
Example #3
0
        public async Task SetStatusAsync(string transferId, PaymentTransferStatus status)
        {
            using (var context = _contextFactory.CreateDataContext())
            {
                var entity = new PaymentTransferEntity {
                    TransferId = transferId
                };

                context.PaymentTransfers.Attach(entity);

                entity.Status = status;

                try
                {
                    await context.SaveChangesAsync();
                }
                catch (DbUpdateException)
                {
                    throw new InvalidOperationException("Entity was not found during status update");
                }
            }
        }