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);
 }
示例#3
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);
        }
示例#6
0
        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);
        }
示例#8
0
        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));
        }
示例#9
0
        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));
            }
        }
示例#10
0
 public GetWithdrawalsUseCase(WithdrawalService service)
 {
     _mapper  = Mappings.Create();
     _service = service;
 }
 public RequestWithdrawalUseCase(WithdrawalService service)
 {
     _mapper  = Mappings.Create();
     _service = service;
 }
示例#12
0
 public ClientEvent(IHttpContextAccessor httpContextAccessor, IEnumerable <IHttpRequestBodyParser> parsers, UpdateClientEventUseCase useCase, WithdrawalService service)
     : base(httpContextAccessor, parsers)
 {
     _useCase = useCase;
     _service = service;
 }
示例#13
0
 public ProcessWFClientActionUseCase(WorkflowGateway workflow, WithdrawalService service)
 {
     _workflow = workflow;
     _service  = service;
 }
示例#14
0
 public UpdateClientEventUseCase(WithdrawalService service)
 {
     _service = service;
 }
示例#15
0
        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);
        }
示例#16
0
        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;
 }
示例#18
0
        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;
                }
            }
        }
示例#19
0
        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;
                }
            }
        }
示例#20
0
 public ExportUseCase(WithdrawalService service, IFileProvider fileProvider)
 {
     _service      = service;
     _fileProvider = fileProvider;
 }