Example #1
0
        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;
            }
        }
Example #2
0
        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;
            }
        }