public UsersController(IUsersService userService, IChargeAccountsService chargeAccountsService, IDepositsService depositsService, ICreditsService creditsService, IWalletsService walletsService)
 {
     _userService    = userService;
     _chargeAccount  = chargeAccountsService;
     _depositService = depositsService;
     _creditService  = creditsService;
     _walletService  = walletsService;
 }
Exemple #2
0
 public AdminController(IUsersService usersService, IDepositsService depositService, ICreditsService creditService, IWalletsService walletsService, IChargeAccountsService chargeAccountService, IDebitCardsService debitCardService, ISupportTicketsService supportTicketService)
 {
     _userService          = usersService;
     _creditService        = creditService;
     _walletService        = walletsService;
     _depositService       = depositService;
     _chargeAccountService = chargeAccountService;
     _debitCardService     = debitCardService;
     _supportTicketService = supportTicketService;
 }
Exemple #3
0
        // private readonly ITransactionService _transactionService;

        public ChargeAccountsController(IChargeAccountsService bankAccountService, IDebitCardsService debitCardService)
        {
            _chargeAccService = bankAccountService;
            _debitCardService = debitCardService;
        }
Exemple #4
0
        //private readonly ITransactionService _transactionService;

        public DebitCardsController(IDebitCardsService debitCardService, IChargeAccountsService bankaccService /*ITransactionService transactionService*/)
        {
            _debitCardService     = debitCardService;
            _chargeAccountService = bankaccService;
            // _transactionService = transactionService;
        }
Exemple #5
0
        public async Task <ActionResult <MessageModel> > Withdraw(string cardNumber, string CVV, DateTime expireDate, ClaimsPrincipal currentUser, string username, decimal amount, string reciever, /*ITransactionService _transactionService*/ IChargeAccountsService _chargeAccService)
        {
            var userAuthenticate = await dbContext.Users.FirstOrDefaultAsync(x => x.Username == username);

            ChargeAccount bankAccountsExists = null;
            Card          cardsExists        = null;

            if (currentUser.HasClaim(c => c.Type == "Roles"))
            {
                if (userAuthenticate != null)
                {
                    try
                    {
                        cardsExists = await dbContext.Cards.FirstOrDefaultAsync(x => x.CardNumber == cardNumber);

                        if (_BCrypt.AuthenticateDebitCardCVV(CVV, cardsExists))
                        {
                            if (cardsExists == null)
                            {
                                responseMessage.Message = "Debit Card not found";
                                return(StatusCode(404, responseMessage));
                            }

                            bankAccountsExists = await dbContext.ChargeAccounts.FirstOrDefaultAsync(x => x.Card == cardsExists);
                        }
                        else
                        {
                            responseMessage.Message = "Invalid Credentials";
                            return(StatusCode(400, responseMessage));
                        }
                    }
                    catch (NullReferenceException)
                    {
                        responseMessage.Message = "Debit Card not found";
                        return(StatusCode(404, responseMessage));
                    }
                }
                else
                {
                    responseMessage.Message = "User not found!";
                    return(StatusCode(404, responseMessage));
                }

                if (bankAccountsExists != null)
                {
                    try
                    {
                        if (cardsExists.CardExpirationDate < DateTime.Now)
                        {
                            responseMessage.Message = "Debit Card is expired";
                            return(StatusCode(406, responseMessage));
                        }
                        ChargeAccountRequestModel requestModel = new ChargeAccountRequestModel();
                        requestModel.ChargeAccount = bankAccountsExists;

                        requestModel.Amount   = amount;
                        requestModel.Reciever = reciever;
                        await _chargeAccService.Withdraw(requestModel, currentUser, username);

                        responseMessage.Message = "Withdraw successfull";
                        return(StatusCode(200, responseMessage));
                    }
                    catch (NullReferenceException)
                    {
                        responseMessage.Message = "Bank Account not found";
                        return(StatusCode(404, responseMessage));
                    }
                }
                else if (bankAccountsExists == null)
                {
                    responseMessage.Message = "Bank Account not found";
                    return(StatusCode(404, responseMessage));
                }
            }

            responseMessage.Message = "You are not autorized to do such actions!";
            return(StatusCode(403, responseMessage));
        }
        public async Task <ActionResult <UserAccResponseModel> > GetAllUserBankAccounts(ClaimsPrincipal currentUser, string username, IChargeAccountsService chargeAccount, IDepositsService depositService, ICreditsService creditsService, IWalletsService walletsService)
        {
            var userAuthenticate = await dbContext.Users.FirstOrDefaultAsync(x => x.Username == username);

            if (currentUser.HasClaim(c => c.Type == "Roles"))
            {
                if (userAuthenticate != null)
                {
                    var charges = await chargeAccount.GetBankAccountInfo(currentUser, username);

                    var deposits = await depositService.GetDepositsInfo(currentUser, username);

                    var wallets = await walletsService.GetWalletsInfo(currentUser, username);

                    var credits = await creditsService.GetCreditInfo(currentUser, username);

                    UserAccResponseModel userAcc = new UserAccResponseModel();
                    userAcc.UserChargeAcc = charges.Value;
                    userAcc.UserCredits   = credits.Value;
                    userAcc.UserDeposits  = deposits.Value;
                    userAcc.UserWallets   = wallets.Value;
                    return(StatusCode(200, userAcc));
                }
                responseMessage.Message = "User not found";
                return(StatusCode(404, responseMessage));
            }
            responseMessage.Message = "You are not logged in";
            return(StatusCode(403, responseMessage));
        }