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(); } }
public async Task AddAsync(PaymentTransferDto paymentTransfer) { using (var context = _contextFactory.CreateDataContext()) { var entity = PaymentTransferEntity.Create(paymentTransfer); context.PaymentTransfers.Add(entity); await context.SaveChangesAsync(); } }
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"); } } }