public static TransactionHistoryEntity CreateForVoucherTokenReservation(VoucherPurchasePaymentDto operation)
 {
     return(new TransactionHistoryEntity
     {
         CustomerId = operation.CustomerId.ToString(),
         Timestamp = operation.Timestamp,
         Type = OperationType.VoucherPurchasePayment.ToString(),
         AssetSymbol = operation.AssetSymbol,
         TransactionId = operation.TransferId.ToString()
     });
 }
        public async Task InsertAsync(VoucherPurchasePaymentDto voucherPurchasePaymentOperation)
        {
            using (var context = _contextFactory.CreateDataContext())
            {
                var historyEntity = TransactionHistoryEntity.CreateForVoucherTokenReservation(voucherPurchasePaymentOperation);
                var voucherPurchasePaymentEntity = new VoucherPurchasePaymentEntity(voucherPurchasePaymentOperation);

                context.VoucherPurchasePayments.Add(voucherPurchasePaymentEntity);
                context.TransactionHistories.Add(historyEntity);

                await context.SaveChangesAsync();
            }
        }
        public Task ProcessVoucherTokensUsedEventAsync(VoucherPurchasePaymentDto voucherPurchasePaymentOperation)
        {
            voucherPurchasePaymentOperation.AssetSymbol = _tokenSymbol;

            return(_voucherPurchasePaymentsRepository.InsertAsync(voucherPurchasePaymentOperation));
        }