public async Task <WalletTransactionDto> GetTransactionRequestById(long id) { try { var walletTransDto = new WalletTransactionDto(); var transaction = await _weGOPAYDbContext.WalletTransaction.Where(s => s.Id == id).FirstOrDefaultAsync(); if (transaction == null) { return(null); } else { walletTransDto.UserId = transaction.UserId; walletTransDto.Id = transaction.Id; walletTransDto.RequestAmount = transaction.Amount; walletTransDto.RequestCurrency = transaction.RequestCurrency; walletTransDto.ResponseCurrency = transaction.ResponseCurrency; walletTransDto.TransactionStatus = transaction.TransactionStatus; return(walletTransDto); } } catch (Exception ex) { throw ex; } }
public async Task <TransactionSettlementDto> GenerateSettlement(long transId) { try { var trans = await _walletTransactionService.GetTransactionRequestById(transId); var user = await _userService.GetUserByUserId(trans.UserId); var nSettle = new SettlementDto { TransactionId = transId, SettlementStatus = SettlementStatus.Success.Description(), ReferenceId = Guid.NewGuid().ToString().Trim(), DateOfSettlement = DateTime.UtcNow, }; var walletTransaction = new WalletTransactionDto { Id = transId, RequestAmount = trans.RequestAmount, RequestCurrency = trans.RequestCurrency, ResponseCurrency = trans.RequestCurrency, TransactionStatus = (int)TransactionStatus.Responded, UserId = trans.UserId }; var userDto = new UserDto { Id = user.Id, Fullname = user.Fullname, EmailAddress = user.EmailAddress, CountryOfOrigin = user.CountryOfOrigin, Gender = user.Gender, CountryOfResidence = user.CountryOfResidence, Status = Status.True.Description(), }; var transactionSettlement = new TransactionSettlementDto { User = userDto, Settlement = nSettle, WalletTransaction = walletTransaction, }; return(transactionSettlement); } catch (Exception ex) { throw ex; } }