public UsersController(IUsersService userService, IChargeAccountsService chargeAccountsService, IDepositsService depositsService, ICreditsService creditsService, IWalletsService walletsService) { _userService = userService; _chargeAccount = chargeAccountsService; _depositService = depositsService; _creditService = creditsService; _walletService = walletsService; }
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; }
// private readonly ITransactionService _transactionService; public ChargeAccountsController(IChargeAccountsService bankAccountService, IDebitCardsService debitCardService) { _chargeAccService = bankAccountService; _debitCardService = debitCardService; }
//private readonly ITransactionService _transactionService; public DebitCardsController(IDebitCardsService debitCardService, IChargeAccountsService bankaccService /*ITransactionService transactionService*/) { _debitCardService = debitCardService; _chargeAccountService = bankaccService; // _transactionService = transactionService; }
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)); }