public async Task <IActionResult> MakeTransactionRequest([FromBody] RequestWalletTransactionDto model)
        {
            try
            {
                var nWallet = await _walletTransactionService.MakeTransactionRequest(model);

                return(Ok(nWallet));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }
Esempio n. 2
0
        public async Task <long> MakeTransactionRequest(RequestWalletTransactionDto model)
        {
            #region Initiating Currency Transaction Request
            try
            {
                WalletTransaction nMakeTransaction = new WalletTransaction();

                var checkTransaction = await _weGOPAYDbContext.Wallet.Where(x => x.UserId == model.UserId).FirstOrDefaultAsync();

                if ((int)model.RequestCurrency == (int)CurrencyEnum.Naira && model.RequestAmount <= checkTransaction.NairaBalance)
                {
                    nMakeTransaction = new WalletTransaction
                    {
                        UserId            = model.UserId,
                        Amount            = model.RequestAmount,
                        RequestCurrency   = (int)CurrencyEnum.Naira,
                        ResponseCurrency  = (int)model.ResponseCurrency,
                        TransactionStatus = (int)TransactionStatus.Requested,
                    };
                }
                if ((int)model.RequestCurrency == (int)CurrencyEnum.USDollar && model.RequestAmount <= checkTransaction.NairaBalance)
                {
                    nMakeTransaction = new WalletTransaction
                    {
                        UserId            = model.UserId,
                        Amount            = model.RequestAmount,
                        RequestCurrency   = (int)CurrencyEnum.USDollar,
                        ResponseCurrency  = (int)model.ResponseCurrency,
                        TransactionStatus = (int)TransactionStatus.Requested,
                    };
                }
                if ((int)model.RequestCurrency == (int)CurrencyEnum.BritishPound && model.RequestAmount <= checkTransaction.NairaBalance)
                {
                    nMakeTransaction = new WalletTransaction
                    {
                        UserId            = model.UserId,
                        Amount            = model.RequestAmount,
                        RequestCurrency   = (int)CurrencyEnum.BritishPound,
                        ResponseCurrency  = (int)model.ResponseCurrency,
                        TransactionStatus = (int)TransactionStatus.Requested,
                    };
                }
                if ((int)model.RequestCurrency == (int)CurrencyEnum.Euro && model.RequestAmount <= checkTransaction.NairaBalance)
                {
                    nMakeTransaction = new WalletTransaction
                    {
                        UserId            = model.UserId,
                        Amount            = model.RequestAmount,
                        RequestCurrency   = (int)CurrencyEnum.Euro,
                        ResponseCurrency  = (int)model.ResponseCurrency,
                        TransactionStatus = (int)TransactionStatus.Requested,
                    };
                }
                if ((int)model.RequestCurrency == (int)CurrencyEnum.Yen && model.RequestAmount <= checkTransaction.NairaBalance)
                {
                    nMakeTransaction = new WalletTransaction
                    {
                        UserId            = model.UserId,
                        Amount            = model.RequestAmount,
                        RequestCurrency   = (int)CurrencyEnum.Yen,
                        ResponseCurrency  = (int)model.ResponseCurrency,
                        TransactionStatus = (int)TransactionStatus.Requested,
                    };
                }
                await _weGOPAYDbContext.WalletTransaction.AddAsync(nMakeTransaction);

                await _weGOPAYDbContext.SaveChangesAsync();

                return(nMakeTransaction.Id);
            }
            catch (Exception ex)
            {
                throw ex;
            }

            #endregion
        }