public ChangeWithdrawalStatusUseCase(Caracal.EventBus.EventBus eventBus, WithdrawalService service, WorkflowGateway workflow) { _mapper = Mappings.Create(); _eventBus = eventBus; _service = service; _workflow = workflow; }
public void Given_UserDetail_When_InvalidUserCredentialUsed_Then_Throw_Exception() { IAuthenticationService authenticationService = new FakeAuthenticationService(false); IBalanceCheckService balanceCheckService = new FakeBalanceCheckService(false); //WithdrawalService withdrawalService = new WithdrawalService(authenticationService, new BalanceCheckerService());//Without IOC unity container WithdrawalService withdrawalService = new WithdrawalService(authenticationService, balanceCheckService); bool isEligible = withdrawalService.IsEligibleToWithDrawal("", "pwd", 123, 0); }
public void WithdrawalServiceUTest_AccountNotFound_Assert_Exception() { Account = new Account(); var stubRepo = new Mock <IAccountRepository>(); IBankDataBaseService bankDataBaseService = new BankDataBaseService(stubRepo.Object); WithdrawalService = new WithdrawalService(bankDataBaseService, stubRepo.Object); WithdrawalService.Execute(27056, new Amount("USD", 1100)); }
public void Given_Any_Amount_When_IsBalanceAvailable_Is_Queried_Then_Return_True() { var balanceCheckService = Substitute.For <IBalanceCheckService>(); balanceCheckService.IsBalanceAvailable(123, 500).Returns(true); //WithdrawalService withdrawalService = new WithdrawalService(new FakeAuthenticationService(true), new BalanceCheckerService()); //Without IOC unity container WithdrawalService withdrawalService = new WithdrawalService(new FakeAuthenticationService(true), new FakeBalanceCheckService(true)); bool isBalanceAvailable = withdrawalService.IsEligibleToWithDrawal("Dhilip", "pwd", 123, 500); Assert.IsTrue(isBalanceAvailable); }
public void Setup() { _fixture = new Fixture(); _baseAddress = new Uri(@"http://localhost"); _testClient = new TestHttpClient(_baseAddress); _testClient.SetUpPostAsAsync(HttpStatusCode.OK); _sut = new WithdrawalService(_testClient); }
public TransactionTests() { LoggedInAccountId = 1; var testTransactionOptions = new DbContextOptionsBuilder <TransactionDbContext>() .UseInMemoryDatabase("TestTransactionsDatabase") .Options; _testTransactionDbContext = new TransactionDbContext(testTransactionOptions); _testTransactionQueries = new TransactionQueries(_testTransactionDbContext, LoggedInAccountId); _testDepositService = new DepositService(_testTransactionQueries); _testWithdrawalService = new WithdrawalService(_testTransactionQueries); _testAccountHistoryService = new AccountHistoryService(_testTransactionQueries); }
public void BeforeEachTest() { var loggerMock = new Mock <ILogger <WithdrawalService> >(); _userBalanceRepositoryMock = new Mock <IUserBalanceRepository>(); _withdrawalRepositoryMock = new Mock <IWithdrawalRepository>(); _walletUserRepositoryMock = new Mock <IWalletUserRepository>(); _botServiceMock = new Mock <IBotService>(); _nodeExecutionServiceMock = new Mock <INodeExecutionService>(); _mhcHttpClientMock = new Mock <IMhcHttpClient>(); _sut = new WithdrawalService(loggerMock.Object, _walletUserRepositoryMock.Object, _botServiceMock.Object, _nodeExecutionServiceMock.Object, _withdrawalRepositoryMock.Object, _mhcHttpClientMock.Object, _userBalanceRepositoryMock.Object); }
public void WithdrawalServiceUTest_Assert_False() { Account = new Account() { PIN = 90565, Id = 27056, TotalAmount = new Amount("USD", 600), ClientId = 22 }; var stubRepo = new Mock <IAccountRepository>(); stubRepo.Setup(s => s.FindAsync(27056)).ReturnsAsync(Account); IBankDataBaseService bankDataBaseService = new BankDataBaseService(stubRepo.Object); WithdrawalService = new WithdrawalService(bankDataBaseService, stubRepo.Object); BalanceInquiryService = new BalanceInquiryService(bankDataBaseService); WithdrawalService.Execute(Account.Id, new Amount("USD", 100)); Assert.IsFalse(BalanceInquiryService.Execute(27056) == new Amount("USD", 100)); }
public async Task <ActionResult> Withdraw(decimal amountToWithdraw, string accountNumber) { try { var withdrawalService = new WithdrawalService(); var result = await withdrawalService.Withdraw(amountToWithdraw, accountNumber, User.Identity.Name); if (result) { return(Json(new { success = true, responseText = "Added." }, JsonRequestBehavior.AllowGet)); } else { return(Json(new { success = false, responseText = "ewan ko ba" }, JsonRequestBehavior.AllowGet)); } } catch (Exception ex) { Response.StatusCode = (int)HttpStatusCode.InternalServerError; return(Json(new { success = false, responseText = ex.Message }, JsonRequestBehavior.AllowGet)); } }
public GetWithdrawalsUseCase(WithdrawalService service) { _mapper = Mappings.Create(); _service = service; }
public RequestWithdrawalUseCase(WithdrawalService service) { _mapper = Mappings.Create(); _service = service; }
public ClientEvent(IHttpContextAccessor httpContextAccessor, IEnumerable <IHttpRequestBodyParser> parsers, UpdateClientEventUseCase useCase, WithdrawalService service) : base(httpContextAccessor, parsers) { _useCase = useCase; _service = service; }
public ProcessWFClientActionUseCase(WorkflowGateway workflow, WithdrawalService service) { _workflow = workflow; _service = service; }
public UpdateClientEventUseCase(WithdrawalService service) { _service = service; }
static void Main(string[] args) { using (var studContext = new StudBankContext(true)) { var AccountService = new AccountService(studContext); Console.WriteLine("Accounts:"); foreach(var account in AccountService.Get()) { System.Console.WriteLine(string.Format("{0} {1} {2} {3} Transfers From: {4} Transfers To:{5}", account.IBAN, account.AccountType, account.MoneyAmount, account.Currency, account.BankTransfersFrom.Count, account.BankTransfersTo.Count)); } var BankTransferService = new BankTransferService(studContext); Console.WriteLine("Transfers:"); foreach (var transfer in BankTransferService.Get(includeProperties: "AccountFrom,AccountTo")) Console.WriteLine(string.Format("From: {0} To: {1} {2} {3} {4}", transfer.AccountFrom.IBAN, transfer.AccountTo.IBAN, transfer.Amount, transfer.Currency, transfer.TransferDate.ToShortDateString())); var LoanAgreementService = new LoanAgreementService(studContext); Console.WriteLine("Loan Agreements:"); foreach (var loanAgreement in LoanAgreementService.Get(includeProperties: "PayoutStatus")) Console.WriteLine(string.Format("{0} {1} {2} {3} {4} {5} {6}", loanAgreement.Client.FirstName, loanAgreement.LoanType, loanAgreement.LoanProviding, loanAgreement.LoanRepayment, loanAgreement.Term, loanAgreement.Amount, loanAgreement.Currency)); var PayoutService = new PayoutService(studContext); Console.WriteLine("Payouts:"); foreach (var payout in PayoutService.Get()) Console.WriteLine(string.Format("{0} {1} {2} {3} {4} {5}", payout.PayoutWay, payout.LoanAmount, payout.ProcessingFee, payout.InterestAmount, payout.TotalAmount, payout.Currency)); var FineService = new FineService(studContext); Console.WriteLine("Fines:"); foreach (var fine in FineService.Get(includeProperties: "LoanAgreement")) Console.WriteLine(string.Format("{0} {1} {2} {3}", fine.LoanAgreement.Id, fine.DeadLineDate.ToShortDateString(), fine.FineRateOfInterest, fine.IsClosed)); var WithdrawalService = new WithdrawalService(studContext); Console.WriteLine("Withdrawals:"); foreach (var withdrawal in WithdrawalService.Get(includeProperties: "ClientAccount,LoanAgreement")) Console.WriteLine(string.Format("{0} {1} {2} {3} {4}", withdrawal.ClientAccount.Id, withdrawal.MoneyAmount, withdrawal.Currency, withdrawal.WithdrawalWay, withdrawal.Date.ToShortDateString())); var PersonService = new PersonService(studContext); Console.WriteLine("Persons:"); foreach (var person in PersonService.Get()) Console.WriteLine(string.Format("{0} {1} {2} Documents: {3} Records: {4}", person.FirstName, person.IdentificationNumber, person.MonthlyIncome, person.Documents.Count, person.CreditHistoryRecords.Count)); var HistoryService = new CreditHistoryRecordService(studContext); Console.WriteLine("Records:"); foreach (var record in HistoryService.Get()) Console.WriteLine(string.Format("{0} {1} {2} {3} {4}", record.Person.FirstName, record.BankConstants.BIC, record.Amount, record.Currency, record.Interest)); var LoanService = new LoanService(studContext); Console.WriteLine("Loan programs:"); foreach (var program in LoanService.Get()) Console.WriteLine(string.Format("{0} {1} {2} {3} {4} {5}", program.Name, program.LoanProviding, program.LoanGuarantee, program.LoanRepayment, program.LoanType, program.MaxAmount)); var LoanApplicationService = new LoanApplicationService(studContext); Console.WriteLine("Loan applications:"); foreach (var loanApplication in LoanApplicationService.Get()) Console.WriteLine(string.Format("{0} {1} {2} {3} {4} First surety:{5}", loanApplication.Client.FirstName, loanApplication.Loan.Name, loanApplication.Amount, loanApplication.Currency, loanApplication.Term, loanApplication.Sureties.FirstOrDefault().FirstName)); var SuretyAgreementService = new SuretyAgreementService(studContext); Console.WriteLine("Surety agreements:"); foreach (var suretyAgreement in SuretyAgreementService.Get()) Console.WriteLine(string.Format("{0} {1} {2} {3} {4} {5}", suretyAgreement.Client.FirstName, suretyAgreement.Guarantor.FirstName, suretyAgreement.Amount, suretyAgreement.Currency, suretyAgreement.LoanTerm, suretyAgreement.SuretyTerm)); var BailAgreementService = new BailAgreementService(studContext); Console.WriteLine("Bail agreements:"); foreach (var bailAgreement in BailAgreementService.Get()) Console.WriteLine(string.Format("{0} {1} {2} {3} {4} {5}", bailAgreement.Client.FirstName, bailAgreement.BailObject, bailAgreement.Amount, bailAgreement.Currency, bailAgreement.LoanTerm, bailAgreement.BailTerm)); var SystemService = new SystemResolutionService(studContext); Console.WriteLine("System resolutions:"); foreach (var resolution in SystemService.Get()) Console.WriteLine(string.Format("Application: {0} {1} {2}", resolution.LoanApplication.Id, resolution.MaxLoanAmount, resolution.ScoringPoint)); var SecurityService = new SecurityResolutionService(studContext); Console.WriteLine("Security resolutions:"); foreach (var resolution in SecurityService.Get()) Console.WriteLine(string.Format("Application: {0} {1} {2}", resolution.LoanApplication.Id, resolution.Property, resolution.PropertyEstimate)); var ExpertService = new ExpertResolutionService(studContext); Console.WriteLine("Expert resolutions:"); foreach (var resolution in ExpertService.Get()) Console.WriteLine(string.Format("Application: {0} {1} {2}", resolution.LoanApplication.Id, resolution.Property, resolution.PropertyEstimate)); var CommitteeService = new CommitteeResolutionService(studContext); Console.WriteLine("Committee resolutions:"); foreach (var resolution in CommitteeService.Get()) Console.WriteLine(string.Format("Link: {0} {1}", resolution.ProtocolDocument.Link, resolution.Resolution)); } Console.WriteLine("\nAuthentification: "); using (var authContext = new StudAuthorizeContext(true)) { var userService = new EntityService<User>(authContext); var roleService = new EntityService<Role>(authContext); foreach (var user in userService.Get(includeProperties: "Roles")) { System.Console.WriteLine(string.Format("{0} {1} {2} {3}", user.FirstName, user.MiddleName, user.LastName, user.Roles.First().Name)); } System.Console.WriteLine(); userService.Get(user => user.FirstName == "Ivan").First().FirstName = "Vano"; authContext.SaveChanges(); foreach (var user in userService.Get(includeProperties: "Roles")) { System.Console.WriteLine(string.Format("{0} {1} {2} {3}", user.FirstName, user.MiddleName, user.LastName, user.Roles.First().Name)); } } System.Console.ReadKey(true); }
static void Main(string[] args) { bool useAutoGeneration = false; bool useTests = false; bool useInitializers = true; if(useAutoGeneration) { using (var unitOfWork = new UnitOfWork(new BankModuleFactory(useInitializers))) { var LoanApplicationService = new LoanApplicationService(unitOfWork); var LoanAgreementService = new LoanAgreementService(unitOfWork); Console.WriteLine("Автогенерация для заявок:"); foreach (var loanApplication in LoanApplicationService.Get()) { if (loanApplication.Goal == "Смена гардероба" || loanApplication.Goal == "Пластическая операция" || loanApplication.Additional == "Car loan test" || loanApplication.Additional == "Grad loan test 1" || loanApplication.Additional == "Grad loan test 2") { Console.WriteLine(string.Format("{0} {1} {2}", loanApplication.Client.FirstName, loanApplication.Goal, loanApplication.Term)); loanApplication.Status.Stage = ApplicationConsiderationStages.ApplicationConfirmationQueue; LoanApplicationService.ApproveApplication(loanApplication); loanApplication.Status.Stage = ApplicationConsiderationStages.Providing; LoanAgreementService.CompleteAgreement(loanApplication.LoanAgreements.First()); unitOfWork.Commit(); } } Console.WriteLine("\nРезультаты:\n"); foreach (var loanApplication in LoanApplicationService.Get()) { if (loanApplication.Goal == "Смена гардероба" || loanApplication.Goal == "Пластическая операция" || loanApplication.Additional == "Car loan test" || loanApplication.Additional == "Grad loan test 1" || loanApplication.Additional == "Grad loan test 2") { Console.WriteLine(string.Format("{0} {1} {2}", loanApplication.Client.FirstName, loanApplication.Goal, loanApplication.Term)); Console.WriteLine("Создан кредитный договор:"); var loanAgreement = loanApplication.LoanAgreements.First(); Console.WriteLine(string.Format("Номер:{0} Кредитный аккаунт:{1} Аккаунт для оплаты:{2}", loanAgreement.Id, loanAgreement.LoanAccount.IBAN, loanAgreement.RepaymentAccount.IBAN)); foreach(var bailAgreement in loanApplication.BailAgreements) { Console.WriteLine("Создан договор залога:"); Console.WriteLine(string.Format("Номер:{0} Объект:{1} Владелец:{2}", bailAgreement.Id, bailAgreement.BailObject, bailAgreement.BailObjectHolder)); } foreach (var suretyAgreement in loanApplication.SuretyAgreements) { Console.WriteLine("Создан договор поручительства:"); Console.WriteLine(string.Format("Номер:{0} Поручитель:{1} Должник:{2}", suretyAgreement.Id, suretyAgreement.Guarantor.FirstName + " " + suretyAgreement.Guarantor.LastName, suretyAgreement.Client.FirstName)); } Console.WriteLine(); } } } System.Console.ReadKey(true); return; } if(useTests) { Console.WriteLine(new LoanTest().RunTest()); Console.WriteLine(new UserTest().RunTest()); System.Console.ReadKey(true); return; } List<LoanApplication> archiveApplications; using (var unitOfWork = new UnitOfWork(new BankModuleFactory(useInitializers))) { var AccountService = new AccountService(unitOfWork); Console.WriteLine("Accounts:"); foreach(var account in AccountService.Get()) { System.Console.WriteLine(string.Format("{0} {1} {2} {3} Transfers From: {4} Transfers To:{5}", account.IBAN, account.AccountType, account.MoneyAmount, account.Currency, account.BankTransfersFrom.Count, account.BankTransfersTo.Count)); } var BankTransferService = new BankTransferService(unitOfWork); Console.WriteLine("Transfers:"); foreach (var transfer in BankTransferService.Get(includeProperties: "AccountFrom,AccountTo")) Console.WriteLine(string.Format("From: {0} To: {1} {2} {3} {4}", transfer.AccountFrom.IBAN, transfer.AccountTo.IBAN, transfer.Amount, transfer.Currency, transfer.TransferDate.ToShortDateString())); var LoanAgreementService = new LoanAgreementService(unitOfWork); Console.WriteLine("Loan Agreements:"); foreach (var loanAgreement in LoanAgreementService.Get(includeProperties: "PayoutStatus")) Console.WriteLine(string.Format("{0} {1} {2} {3} {4} {5} {6}", loanAgreement.Client.FirstName, loanAgreement.LoanType, loanAgreement.LoanProviding, loanAgreement.LoanRepayment, loanAgreement.Term, loanAgreement.Amount, loanAgreement.Currency)); var PayoutService = new PayoutService(unitOfWork); Console.WriteLine("Payouts:"); foreach (var payout in PayoutService.Get()) Console.WriteLine(string.Format("{0} {1} {2} {3} {4} {5}", payout.PayoutWay, payout.LoanAmount, payout.ProcessingFee, payout.InterestAmount, payout.TotalAmount, payout.Currency)); var FineService = new FineService(unitOfWork); Console.WriteLine("Fines:"); foreach (var fine in FineService.Get(includeProperties: "LoanAgreement")) Console.WriteLine(string.Format("{0} {1} {2} {3}", fine.LoanAgreement.Id, fine.DeadLineDate.ToShortDateString(), fine.FineRateOfInterest, fine.IsClosed)); var WithdrawalService = new WithdrawalService(unitOfWork); Console.WriteLine("Withdrawals:"); foreach (var withdrawal in WithdrawalService.Get(includeProperties: "ClientAccount,LoanAgreement")) Console.WriteLine(string.Format("{0} {1} {2} {3} {4}", withdrawal.ClientAccount.Id, withdrawal.MoneyAmount, withdrawal.Currency, withdrawal.WithdrawalWay, withdrawal.Date.ToShortDateString())); var PersonService = new PersonService(unitOfWork); Console.WriteLine("Persons:"); foreach (var person in PersonService.Get()) Console.WriteLine(string.Format("{0} {1} {2} Documents: {3} Records: {4}", person.FirstName, person.IdentificationNumber, person.MonthlyIncome, person.Documents.Count, person.CreditHistoryRecords.Count)); var HistoryService = new CreditHistoryRecordService(unitOfWork); Console.WriteLine("Records:"); foreach (var record in HistoryService.Get()) Console.WriteLine(string.Format("{0} {1} {2} {3} {4}", record.Person.FirstName, record.BankConstants.BIC, record.Amount, record.Currency, record.Interest)); var LoanService = new LoanService(unitOfWork); Console.WriteLine("Loan programs:"); foreach (var program in LoanService.Get()) Console.WriteLine(string.Format("{0} {1} {2} {3} {4} {5}", program.Name, program.LoanProviding, program.LoanGuarantee, program.LoanRepayment, program.LoanType, program.MaxAmount)); var LoanApplicationService = new LoanApplicationService(unitOfWork); Console.WriteLine("Loan applications:"); foreach (var loanApplication in LoanApplicationService.Get()) { Console.WriteLine(string.Format("{0} {1} {2} {3} Time: {4}", loanApplication.Client.FirstName, loanApplication.Loan.Name, loanApplication.Amount, loanApplication.Term, loanApplication.Status.ChangedDate.TimeOfDay.ToString())); } unitOfWork.Commit(); var SuretyAgreementService = new SuretyAgreementService(unitOfWork); Console.WriteLine("Surety agreements:"); foreach (var suretyAgreement in SuretyAgreementService.Get()) Console.WriteLine(string.Format("{0} {1} {2} {3} {4} {5}", suretyAgreement.Client.FirstName, suretyAgreement.Guarantor.FirstName, suretyAgreement.Amount, suretyAgreement.Currency, suretyAgreement.LoanTerm, suretyAgreement.SuretyTerm)); var BailAgreementService = new BailAgreementService(unitOfWork); Console.WriteLine("Bail agreements:"); foreach (var bailAgreement in BailAgreementService.Get()) Console.WriteLine(string.Format("{0} {1} {2} {3} {4} {5}", bailAgreement.Client.FirstName, bailAgreement.BailObject, bailAgreement.Amount, bailAgreement.Currency, bailAgreement.LoanTerm, bailAgreement.BailTerm)); var BailObjectService = new BailObjectsService(unitOfWork); Console.WriteLine("Bail objects:"); foreach (var bailObject in BailObjectService.Get()) Console.WriteLine(string.Format("{0} {1} {2} {3}", bailObject.Object, bailObject.ClientIdentificationNumber, bailObject.BailObjectEstimate, bailObject.Currency)); var SystemService = new SystemResolutionService(unitOfWork); Console.WriteLine("System resolutions:"); foreach (var resolution in SystemService.Get()) Console.WriteLine(string.Format("Application: {0} {1} {2}", resolution.LoanApplication.Id, resolution.MaxLoanAmount, resolution.ScoringPoint)); var SecurityService = new SecurityResolutionService(unitOfWork); Console.WriteLine("Security resolutions:"); foreach (var resolution in SecurityService.Get()) Console.WriteLine(string.Format("Application: {0} {1} {2}{3}", resolution.LoanApplication.Id, resolution.Income, Environment.NewLine, resolution.IncomeEstimate)); var ExpertService = new ExpertResolutionService(unitOfWork); Console.WriteLine("Expert resolutions:"); foreach (var resolution in ExpertService.Get()) Console.WriteLine(string.Format("Application: {0} {1} {2}", resolution.LoanApplication.Id, resolution.Social, resolution.SocialEstimate)); var CommitteeService = new CommitteeResolutionService(unitOfWork); Console.WriteLine("Committee resolutions:"); foreach (var resolution in CommitteeService.Get()) Console.WriteLine(string.Format("Link: {0} {1}", resolution.ProtocolDocument.Link, resolution.Resolution)); archiveApplications = LoanApplicationService.Get (app => app.Id < 5, app => app.OrderBy(p => p.Id), app => app.Client, app => app.LoanAgreements, app => app.LoanAgreements.Select(l => l.BankConstants), app => app.LoanAgreements.Select(l => l.Payouts), app => app.LoanAgreements.Select(l => l.ClientWithdrawals), app => app.BailAgreements.Select(b => b.AgreementDocument), app => app.BailAgreements.Select(b => b.EstimationDocument), app => app.BailAgreements.Select(b => b.InsuranceDocument), app => app.SuretyAgreements.Select(s => s.AgreementDocument), app => app.SuretyAgreements.Select(s => s.Client), app => app.SuretyAgreements.Select(s => s.Guarantor), app => app.SuretyAgreements.Select(s => s.BankConstants) ).ToList(); } using (var archiveUnit = new UnitOfWork(new ArchiveModuleFactory(useInitializers))) { var ApplicationService = new ArchiveLoanApplicationService(archiveUnit); foreach(var arch in archiveApplications) ApplicationService.ArchiveApplication(arch); archiveUnit.Commit(); } using (var archiveUnit = new UnitOfWork(new ArchiveModuleFactory(false))) { var ApplicationService = new ArchiveLoanApplicationService(archiveUnit); Console.WriteLine("\nArchived applications:"); foreach (var loanApplication in ApplicationService.Get()) Console.WriteLine(string.Format("{0} {1} {2} {3} Time: {4}", loanApplication.ClientIdentificationNumber, loanApplication.LoanAgreements.Count, loanApplication.Amount, loanApplication.Term, loanApplication.ArchivedDate.TimeOfDay.ToString())); } Console.WriteLine("\nAuthentification: "); using (var unitOfWork = new UnitOfWork(new AuthorizationModuleFactory(useInitializers))) { var userService = new UserService(unitOfWork); foreach (var user in userService.Get(includeProperties: "Roles")) { System.Console.WriteLine(string.Format("{0} {1} {2} {3}", user.FirstName, user.MiddleName, user.LastName, user.Roles.First().Name)); var newUser = userService.GetLoggedUser(user.Login, "ivan_peresvetov_pass"); if(newUser != null) Console.WriteLine("Found ivan!"); } } System.Console.ReadKey(true); }
public AutoAllocateUseCase(WithdrawalService service, IFileProvider fileProvider) { _service = service; _fileProvider = fileProvider; }
public static void LoggedInMenuOptions(int accountId, ref bool loggedIn) { //instanticate dependencies for depositService, withdrawalService and transactionService var loggedinAccountId = accountId; var transactionOptions = new DbContextOptionsBuilder <TransactionDbContext>() .UseInMemoryDatabase("BankingAppDatabase") .Options; var transactionDbContext = new TransactionDbContext(transactionOptions); var transactionQueries = new TransactionQueries(transactionDbContext, loggedinAccountId); var accountHistoryService = new AccountHistoryService(transactionQueries); while (loggedIn) { Console.WriteLine("Please choose from the following menu options:\n"); Console.WriteLine("a) Make a deposit"); Console.WriteLine("b) Make a withdrawal"); Console.WriteLine("c) Check your balance"); Console.WriteLine("d) See your transaction history"); Console.WriteLine("e) Log out"); Console.WriteLine("f) Quit"); var menuChoice = Console.ReadLine(); switch (menuChoice) { case "a": var depositService = new DepositService(transactionQueries); var depositAmount = ValidateTransactionEntry("Deposit"); var depositMessage = depositService.SubmitTransaction(depositAmount); Console.WriteLine(depositMessage); break; case "b": var withdrawalService = new WithdrawalService(transactionQueries); var withdrawalAmount = ValidateTransactionEntry("Withdrawal"); var withdrawalMessage = withdrawalService.SubmitTransaction(withdrawalAmount); Console.WriteLine(withdrawalMessage); break; case "c": Console.WriteLine($"Your account balance is: ${accountHistoryService.GetAccountBalance()}"); break; case "d": var transactionHistory = accountHistoryService.GetransactionHistory(); Console.WriteLine("Transaction History:\n"); foreach (var transaction in transactionHistory) { Console.WriteLine($"${transaction.Amount}"); Console.WriteLine(transaction.Timestamp); Console.WriteLine("--------------------------------------------------"); } break; case "e": loggedIn = false; break; case "f": Quit(); break; default: Console.WriteLine("Invalid selection, please choose again.\n"); break; } } }
static void Main(string[] args) { // While loop bool running = true; while (running) { AccountService acctService = new AccountService(); CustomerService customerService = new CustomerService(); Console.WriteLine("Welcome to Cool Bank . . .\n\n"); bool accountLoop = true; int accountNum = 0; while (accountLoop) { Console.WriteLine("Enter Account Number:"); bool accountInt = int.TryParse(Console.ReadLine(), out accountNum); if (accountInt) { accountLoop = false; } else { Console.WriteLine("Not a valid account number."); Console.ReadLine(); Console.Clear(); } } bool pinLoop = true; int pinInput = 0; while (pinLoop) { Console.WriteLine("\nEnter PIN:"); bool pinInt = int.TryParse(Console.ReadLine(), out pinInput); if (pinInt) { pinLoop = false; } else { Console.WriteLine("Not a valid PIN."); Console.ReadLine(); Console.Clear(); } } var currentAcct = acctService.Login(accountNum, pinInput); // LOGIN FAILED if (currentAcct == null) { Console.WriteLine("The account number or PIN you entered was incorrect."); Console.ReadLine(); Console.Clear(); } // LOGIN SUCCESS else { Console.Clear(); var customer = customerService.CustomerById(currentAcct.CustomerID); TransactionService transaction = new TransactionService(); var transactions = transaction.CreateTransaction(DateTime.Now); bool menuLoop = true; while (menuLoop) { Console.Clear(); Console.WriteLine("What would you like to do?\n\n" + "1. View Account Details\n" + "2. Withdraw Money\n" + "3. Deposit Money\n" + "4. View Transaction History\n" + "5. Exit"); string actionInput = Console.ReadLine(); // Viewing Account Details if (actionInput == "1") { Console.WriteLine($"Account Owner Surname: {customer.LastName}\n" + $"Account Owner First Name: {customer.FirstName}\n"); if (currentAcct.LastName2 != null) { Console.WriteLine($"Secondary User Surname: {currentAcct.LastName2}"); } if (currentAcct.FirstName2 != null) { Console.WriteLine($"Secondary User First Name: {currentAcct.FirstName2}\n"); } Console.WriteLine($"Account Number: {currentAcct.AccountNum}\n" + $"Account Type: {currentAcct.AccountType}\n\n" + $"Balance: {currentAcct.Balance}"); Console.ReadLine(); } // Withdrawing else if (actionInput == "2") { WithdrawalService withdrawal = new WithdrawalService(); } // Depositing else if (actionInput == "3") { DepositService deposit = new DepositService(); var depAmount = Decimal.Parse(Console.ReadLine()); deposit.CreateDeposit(currentAcct, depAmount, ) } // Transaction history else if (actionInput == "4") { Console.Clear(); transaction.GetInteractions(currentAcct.AccountID); Console.ReadLine(); } // Closing the program else if (actionInput == "5") { menuLoop = false; Console.WriteLine("Goodbye!"); } // None of the above else { Console.WriteLine("Invalid input."); Console.ReadLine(); } } running = false; } } }
public ExportUseCase(WithdrawalService service, IFileProvider fileProvider) { _service = service; _fileProvider = fileProvider; }