/// <summary> /// Constructor /// </summary> public LibraryForm() { InitializeComponent(); // we create only one context in our application, which gets shared among repositories LibraryContext context = new LibraryContext(); // we use a factory object that will create the repositories as they are needed, it also makes // sure all the repositories created use the same context. RepositoryFactory repFactory = new RepositoryFactory(context); this.bookService = new BookService(repFactory); this.authorService = new AuthorService(repFactory); this.memberService = new MemberService(repFactory); this.loanService = new LoanService(repFactory); this.bookCopyService = new BookCopyService(repFactory); ShowAllBooks(bookService.All()); ShowAllAuthors(authorService.All()); ShowAllMembers(memberService.All()); ShowActiveLoans(loanService.GetActiveLoans()); //Observers bookService.Updated += OnChanged; authorService.Updated += OnChanged; memberService.Updated += OnChanged; loanService.Updated += OnChanged; bookCopyService.Updated += OnChanged; loanService.Updated += new EventHandler(OnChangedLoanState); rbActive.CheckedChanged += new EventHandler(OnChangedLoanState); rbReturned.CheckedChanged += new EventHandler(OnChangedLoanState); rbOverdue.CheckedChanged += new EventHandler(OnChangedLoanState); }
public LibraryForm() { InitializeComponent(); RepositoryFactory repoFactory = new RepositoryFactory(); _bookService = new BookService(repoFactory); _bookCopyService = new BookCopyService(repoFactory); _authorService = new AuthorService(repoFactory); _loanService = new LoanService(repoFactory); _memberService = new MemberService(repoFactory); //Subscribe to event _bookService.Updated += ListAllBooks; _bookCopyService.Updated += ListAllBookCopies; _authorService.Updated += ListAllAuthors; _loanService.Updated += ListAllLoans; _memberService.Updated += ListAllMembers; //Call the event to print to print the "test-objects" _authorService.OnChanged(this, EventArgs.Empty); _bookService.OnChanged(this, EventArgs.Empty); _bookCopyService.OnChanged(this, EventArgs.Empty); _loanService.OnChanged(this, EventArgs.Empty); _memberService.OnChanged(this, EventArgs.Empty); }
private bool ValidateLookup() { if (string.IsNullOrWhiteSpace(txt.Text)) { ObjectID = 0; return(true); } if (LookupType == LookupType.Contact && ObjectID.HasValue && ObjectID.Value > 0) { var loanService = new LoanService(User); var contact = loanService.GetContact(ObjectID.Value); if (contact != null) { if (LoanService.FormatName(contact).Equals(txt.Text, StringComparison.CurrentCultureIgnoreCase)) { return(true); } } } var service = new SupportService(User); var lookupResults = service.LookupSearch(txt.Text, LookupType); if (lookupResults != null && lookupResults.Count >= 1) { return(lookupResults.Any(result => ObjectID == result.ObjectID)); } return(false); }
public void LoanService_Add_ShouldBeOK() { //Cenário //Modelo Loan modelo = ObjectMother.GetLoan(); modelo.Book = _book; //Mock _mockRepository.Setup(m => m.Save(modelo)).Returns(new Loan() { Id = 1 }); //Serviço LoanService service = new LoanService(_mockRepository.Object); // Fim Cenario //Executa Loan resultado = service.Add(modelo); //Saída resultado.Should().NotBeNull(); resultado.Id.Should().BeGreaterThan(0); _mockRepository.Verify(repository => repository.Save(modelo)); }
public void LoanService_Update_ShouldBeOk() { //Cenário //Modelo Loan modelo = ObjectMother.GetLoan(); modelo.Id = 1; modelo.Book = _book; //Mock _mockRepository.Setup(m => m.Update(modelo)).Returns(new Loan() { Id = 1, ClientName = "Cliente" }); //Serviço LoanService service = new LoanService(_mockRepository.Object); // Fim Cenario //Executa Loan resultado = service.Update(modelo); //Saída resultado.Should().NotBeNull(); resultado.ClientName.Should().Be(modelo.ClientName); _mockRepository.Verify(repository => repository.Update(modelo)); }
public LoanController(ILoanView view, IList loanList)// { _view = view; _LoansList = loanList; view.SetController(this); loanService = new LoanService(); }
/// <summary> /// Constructor of form. /// </summary> public LibraryForm() { InitializeComponent(); // Register derived strategy with seed method Database.SetInitializer <LibraryContext>(new LibraryDbInit()); // We create only one context in our application, which gets shared among repositories LibraryContext context = new LibraryContext(); // We use a factory object that will create the repositories as they are needed, it also makes // sure all the repositories created use the same context. RepositoryFactory repFactory = new RepositoryFactory(context); this.bookService = new BookService(repFactory); this.authorService = new AuthorService(repFactory); this.copyService = new BookCopyService(repFactory); this.memberService = new MemberService(repFactory); this.loanService = new LoanService(repFactory); // All objects that should show up at the start. ShowAllAuthors(authorService.All()); ShowAllBooks(bookService.All(), lbBooks); ShowAllBooks(bookService.All(), lbOfBooks); ShowAllMembers(memberService.All()); ShowAllLoans(loanService.All()); ShowAllCopies(CopyNotOnLoan(), lbCopies); // Subscribe to event bookService.Updated += BookService_Updated; copyService.Updated += CopyService_Updated; authorService.Updated += AuthorService_Updated; memberService.Updated += MemberService_Updated; loanService.Updated += LoanService_Updated; }
public async Task ThrowExeptionWhenPhoneNumberIsNullInFormForLoan_Test() { var loanUtil = LoanGeneratorUtil.GenerateLoan(); loanUtil.PhoneNumber = null; var mockEncodeDecodeService = new Mock <IEncodeDecodeService>().Object; var options = TestUtilities.GetOptions(nameof(ThrowExeptionWhenPhoneNumberIsNullInFormForLoan_Test)); using (var actContext = new E_MailApplicationsManagerContext(options)) { var loanDto = new LoanApplicantDto { Name = loanUtil.Name, EGN = loanUtil.EGN, PhoneNumber = loanUtil.PhoneNumber, GmailId = loanUtil.GmailId }; var sut = new LoanService(actContext, mockEncodeDecodeService); await sut.FillInFormForLoanAsync(loanDto); } }
protected override void ProcessImpl(User user) { var service = new LoanService(user); Model.LoanID = Loan.LoanID; Model.LoanMaterialID = service.InsertLoanMaterial(Model); }
public LibraryForm() { InitializeComponent(); // we create only one context in our application, which gets shared among repositories LibraryContext context = new LibraryContext(); // we use a factory object that will create the repositories as they are needed, it also makes // sure all the repositories created use the same context. RepositoryFactory repFactory = new RepositoryFactory(context); bookService = new BookService(repFactory); copyService = new BookCopyService(repFactory); authorService = new AuthorService(repFactory); memberService = new MemberService(repFactory); returnedLoanService = new ReturnedLoanService(repFactory); loanService = new LoanService(repFactory, returnedLoanService); ShowAllBooks(bookService.All()); ShowAllBookCopies(copyService.All()); ShowAllMembers(memberService.All()); ShowAllAuthors(authorService.All()); ShowAllLoans(loanService.All()); ShowAllAvailableBooks(copyService.All(), loanService.All()); ShowAllOverDueBooks(copyService.All()); bookService.Updated += BookService_Updated; authorService.Updated += AuthorService_Updated; copyService.Updated += CopyService_Updated; memberService.Updated += MemberService_Updated; loanService.Updated += LoanService_Updated; backgroundWorker1.DoWork += BackgroundWorker1_DoWork; backgroundWorker1.RunWorkerCompleted += BackgroundWorker1_RunWorkerCompleted; }
public async Task LoanService_GetDefaultLoans_GetLoanApiType() { var service = new LoanService(); var loans = await service.GetDefaultLoans(); Assert.IsInstanceOfType(loans.FirstOrDefault(), typeof(LoanApi)); }
public void LoanService_ReturnOneBook_CountNrOneOnLoanList() { //Arrange var options = new DbContextOptionsBuilder <ApplicationDbContext>() .UseInMemoryDatabase("MDLibrary_ReturnOneBook") .Options; var context = new ApplicationDbContext(options); var testLoanService = new LoanService(context); context.Member.Add(new Member { ID = 1 }); context.Loan.Add(new Loan { ID = 1, MemberID = 1 }); context.LoanBook.AddRange(new LoanBook { BookCopyID = 1, LoanID = 1 }, new LoanBook { BookCopyID = 2, LoanID = 1 }); context.SaveChanges(); var expectedResult = 1; //Act testLoanService.ReturnOneBook(1); var actualResult = context.LoanBook.ToList().Count; //Assert Assert.Equal(expectedResult, actualResult); }
public LibraryForm() { InitializeComponent(); // we create only one context in our application, which gets shared among repositories LibraryContext context = new LibraryContext(); // we use a factory object that will create the repositories as they are needed, it also makes // sure all the repositories created use the same context. RepositoryFactory repFactory = new RepositoryFactory(context); this.bookService = new BookService(repFactory); this.bookCopyService = new BookCopyService(repFactory); this.authorService = new AuthorService(repFactory); this.memberService = new MemberService(repFactory); this.loanService = new LoanService(repFactory); //Can we do this another way? ShowAllBooks(bookService.All()); AuthorTabShowAllAuthors(authorService.All()); BookTabShowAllAuthors(authorService.All()); MemberTabShowAllMembers(memberService.All()); BookTabBooksByAuthor(authorService.All()); ShowAllBooksInComboBox(bookService.All()); LoanTabShowMembers(memberService.All()); LoanTabShowCopies(bookCopyService.GetAvailableBookCopies(loanService.All(), bookCopyService.All())); ShowAllLoans(loanService.GetAllCurrentLoans(), loanService.GetAllPreviousLoans(), loanService.GetAllOverdueLoans()); LoanTabShowLoansByMember(memberService.All()); TEST(loanService.All(), bookCopyService.All()); }
private LoanService CreateLoanService() { var userID = Guid.Parse(User.Identity.GetUserId()); var service = new LoanService(userID); return(service); }
private string ChooseFilename(Loan loan, Multimedia template) { var dlg = new SaveFileDialog(); var defaultDir = Config.GetUser(User, "Loans.Forms.DefaultOutputDirectory", dlg.InitialDirectory); if (!string.IsNullOrWhiteSpace(defaultDir)) { var dirinfo = new DirectoryInfo(defaultDir); if (dirinfo.Exists) { dlg.InitialDirectory = dirinfo.FullName; } } var borrowerName = LoanService.FormatName("", loan.RequestorGivenName, loan.RequestorName); dlg.FileName = SystemUtils.StripIllegalFilenameChars(string.Format("{0}_{1}_{2:yyyy-MM-dd}.{3}", loan.LoanNumber, borrowerName, DateTime.Now, template.FileExtension)); if (dlg.ShowDialog() == true) { var finfo = new FileInfo(dlg.FileName); Config.SetUser(User, "Loans.Forms.DefaultOutputDirectory", finfo.DirectoryName); return(dlg.FileName); } return(null); }
public async Task FillInFormForLoan_Test() { var loanUtil = LoanGeneratorUtil.GenerateLoan(); var firstEmail = EmailGeneratorUtil.GenerateEmailFirst(); var mockEncodeDecodeService = new Mock <IEncodeDecodeService>().Object; var options = TestUtilities.GetOptions(nameof(FillInFormForLoan_Test)); using (var actContext = new E_MailApplicationsManagerContext(options)) { var email = await actContext.Emails.AddAsync(firstEmail); await actContext.SaveChangesAsync(); var loanDto = new LoanApplicantDto { Name = loanUtil.Name, EGN = loanUtil.EGN, PhoneNumber = loanUtil.PhoneNumber, GmailId = loanUtil.GmailId, UserId = loanUtil.GmailId }; var sut = new LoanService(actContext, mockEncodeDecodeService); var result = await sut.FillInFormForLoanAsync(loanDto); Assert.IsNotNull(result); } }
public void Loan_One_Item_To_Member() { // Arrange LoanService _loanService = new LoanService(); Item item = new Item { Id = Guid.NewGuid(), CategoryId = Guid.NewGuid(), SectionId = Guid.NewGuid(), Code = "ADLTBOOKBROW0001", Title = "The Lost Symbol", Author = "Dan Brown", ISBN = "9780593054277", Status = ItemStatus.OnShelf }; Member member = new Member { Id = Guid.NewGuid(), Code = "BROWN19800617001", Title = "Mr", Forename = "Alan", Surname = "Shearer", Gender = "M", DOB = new DateTime(1979, 06, 23), Address = "1 High Street", City = "Newcastle", Postcode = "N1 1AS", Email = "*****@*****.**", Mobile = "09868390914", Telephone = "1927 9845983", MaxItems = 6, Loans = new List <Loan> { } }; Loan loan = new Loan { Id = Guid.NewGuid() }; // Act bool result = _loanService.Loan(item, member, loan); // Assert Assert.AreEqual(item.Id, loan.ItemId); Assert.AreEqual(member.Id, loan.MemberId); Assert.AreEqual(DateTime.Now.Date, loan.LoanDate); Assert.AreEqual(DateTime.Now.Date.AddDays(21), loan.DueDate); Assert.AreEqual(ItemStatus.OnLoan, item.Status); CollectionAssert.Contains(member.Loans, loan); }
public App() { var accountRepository = new AccountRepository( new CSVStream <Account>(ACCOUNT_FILE, new AccountCSVConverter(CSV_DELIMITER)), new LongSequencer()); var clientRepository = new ClientRepository( new CSVStream <Client>(CLIENT_FILE, new ClientCSVConverter(CSV_DELIMITER, DATETIME_FORMAT)), new LongSequencer(), accountRepository); var loanRepository = new LoanRepository( new CSVStream <Loan>(LOAN_FILE, new LoanCSVConverter(CSV_DELIMITER, DATETIME_FORMAT)), new LongSequencer(), clientRepository); var transactionRepository = new TransactionRepository( new CSVStream <Transaction>(TRANSACTION_FILE, new TransactionCSVConverter(CSV_DELIMITER, DATETIME_FORMAT)), new LongSequencer(), clientRepository); var accountService = new AccountService(accountRepository); var clientService = new ClientService(clientRepository, accountService); var loanService = new LoanService(loanRepository, clientService); var transactionService = new TransactionService(transactionRepository, clientService); AccountController = new AccountController(accountService); ClientController = new ClientController(clientService); LoanController = new LoanController(loanService); TransactionController = new TransactionController(transactionService); }
public void Can_Student_Take_Loan_When_Has_Loan_Already() { //Arrange LoanDto loanDto = new LoanDto { LoanAmount = 600, UserId = 1 }; bankAccountRepositoryMock.Setup(x => x.GetSingle(It.Is <int>(y => y.Equals(loanDto.UserId)), u => u.ApplicationIdentityUser, t => t.BankAccountType)).Returns(new BankAccount() { Id = 4, BankAccountType = new BankAccountType { Name = BankAccountTypeEnum.Student.ToString("G") } }); loanRepositoryMock.Setup(x => x.GetAll()).Returns(new Loan[] { new Loan { BankAccountId = 4 } }.AsQueryable); //Act var obj = new LoanService(loanRepositoryMock.Object, bankAccountRepositoryMock.Object, loanInstallmentRepositoryMock.Object, bankAccountServiceMock.Object); var result = obj.TakeLoan(loanDto); //Assert Assert.IsNotNull(result); Assert.AreEqual(false, result.Success); Assert.AreEqual("You cannot take more loans - upgrade your bank account or contact support", result.Message); }
public LibraryForm() { InitializeComponent(); // we create only one context in our application, which gets shared among repositories LibraryContext context = new LibraryContext(); // we use a factory object that will create the repositories as they are needed, it also makes // sure all the repositories created use the same context. RepositoryFactory repFactory = new RepositoryFactory(context); this.bookService = new BookService(repFactory); this.bookCopyService = new BookCopyService(repFactory); this.authorService = new AuthorService(repFactory); this.memberService = new MemberService(repFactory); this.loanService = new LoanService(repFactory); //Adds event listener to bookService. this.bookService.Updated += UpdateBookListEvent; this.bookCopyService.Updated += UpdateBookCopyListEvent; this.authorService.Updated += UpdatedAuthorEvent; this.memberService.Updated += UpdateMemberListEvent; this.loanService.Updated += UpdatedLoansEvent; UpdateBookList(bookService.All().ToList()); currentBookDisplay = bookService.All().ToList(); currentBookCopyDisplay = new List <BookCopy>(); currentMemberDisplay = memberService.All().ToList(); currentLoanDisplay = loanService.All().ToList(); SetAllColors(); editAuthorTB.AutoCompleteCustomSource.AddRange(authorService.GetAllAuthorNames().ToArray()); //Adds all the current authors to autocomplete list. }
private async void LoanSaveButton_Click(object sender, RoutedEventArgs e) { loan _loan = getLoanData(); if (_viewmode.Equals(Mode.NEW)) { if (LoanService.InsertLoan(_loan) == 1) { await MainWindow.Instance.ShowMessageAsync(Messages.TTL_MSG, "Loan Added Success!", MessageDialogStyle.Affirmative); //SendConfirmationSMS(); clearLoanIssuePage(); MultiSearch.Instance.ClearSearchResult(); } else { await MainWindow.Instance.ShowMessageAsync(Messages.TTL_MSG, "Please check Deatails", MessageDialogStyle.Affirmative); } } if (_viewmode.Equals(Mode.EDIT)) { _loan.ID = Session.SelectedLoan.ID; if (LoanService.UpdateLoan(_loan) == 1) { await MainWindow.Instance.ShowMessageAsync(Messages.TTL_MSG, "Loan Edit Success!", MessageDialogStyle.Affirmative); //SendConfirmationSMS(); } else { await MainWindow.Instance.ShowMessageAsync(Messages.TTL_MSG, "Please check Deatails", MessageDialogStyle.Affirmative); } } }
public void Cannot_Transfer_Cash_When_Taking_Loan() { //Arrange LoanDto loanDto = new LoanDto { LoanAmount = 600, UserId = 1 }; bankAccountRepositoryMock.Setup(x => x.GetSingle(It.Is <int>(y => y.Equals(loanDto.UserId)), u => u.ApplicationIdentityUser, t => t.BankAccountType)).Returns(new BankAccount() { Id = 4, BankAccountType = new BankAccountType { Name = BankAccountTypeEnum.Corporate.ToString("G") } }); loanRepositoryMock.Setup(x => x.GetAll()).Returns(new Loan[] { new Loan { BankAccountId = 4 }, new Loan { BankAccountId = 4 } }.AsQueryable); loanRepositoryMock.Setup(x => x.CreateAndReturnId(It.IsAny <Loan>())).Returns(222); bankAccountServiceMock.Setup(x => x.GiveCash(It.Is <decimal>(c => c.Equals(loanDto.LoanAmount)), It.Is <int>(y => y.Equals(loanDto.UserId)))).Returns(false); //Act var obj = new LoanService(loanRepositoryMock.Object, bankAccountRepositoryMock.Object, loanInstallmentRepositoryMock.Object, bankAccountServiceMock.Object); var result = obj.TakeLoan(loanDto); //Assert Assert.IsNotNull(result); Assert.AreEqual(false, result.Success); Assert.AreEqual("There was a problem with money transfer. Contact support", result.Message); }
public void LoanOutBook_AddOneLoanToEmptyList_CountNrOne() { //Arrange var options = new DbContextOptionsBuilder <ApplicationDbContext>() .UseInMemoryDatabase("MDLibrary_LoanOutBook") .Options; var context = new ApplicationDbContext(options); var testLoanService = new LoanService(context); var expectedResult = 1; var newLoan = new Loan() { ID = 1, MemberID = 1 }; newLoan.BookCopies = new List <BookCopy> { new BookCopy() { ID = 2 } }; //Act testLoanService.LoanOutBook(newLoan); var actualResult = context.Loan .Where(l => l.ID == 1).ToList().Count; //Assert Assert.Equal(expectedResult, actualResult); }
public LibraryForm() { InitializeComponent(); // we create only one context in our application, which gets shared among repositories LibraryContext context = new LibraryContext(); // we use a factory object that will create the repositories as they are needed, it also makes // sure all the repositories created use the same context. RepositoryFactory repFactory = new RepositoryFactory(context); // Service intialization this.bookService = new BookService(repFactory); this.authorService = new AuthorService(repFactory); this.bookCopyService = new BookCopyService(repFactory); this.memberService = new MemberService(repFactory); this.loanService = new LoanService(repFactory); // Event declaration this.bookService.Updated += BookService_Updated; this.authorService.Updated += AuthorService_Updated; this.memberService.Updated += MemberService_Updated; this.loanService.Updated += LoanService_Updated; this.bookCopyService.Updated += BookCopyService_Updated; // Start up methods that populate the lists ShowAllBooks(bookService.All()); ShowAllAuthors(authorService.All()); ShowAvailableCopies(bookCopyService.AllAvailable()); }
protected override void ProcessImpl(User user) { var service = new LoanService(user); Model.LoanID = Loan.LoanID; service.InsertLoanCorrespondence(Model); }
public LoanHistory(LoanService ls) { loanService = ls; InitializeComponent(); loanService.Updated += LoanService_Updated; ShowAllLoans(loanService.All()); }
public void Initialize() { _mockLoanRepository = new Mock <ILoanRepository>(); _loanService = new LoanService(_mockLoanRepository.Object); _book = ObjectMother.GetBookOK(); _loan = ObjectMother.GetLoanOk(_book); }
public void Initialize() { BaseSqlTests.SeedDatabase(); _loanRepository = new LoanRepository(); _loanService = new LoanService(_loanRepository); _book = ObjectMother.GetBookOK(); }
public void Setup() { Fixture = new Fixture(); CalculateServiceMock = new Mock <ICalculateService>(); Service = new LoanService(CalculateServiceMock.Object); }
public ActionResult Index() { var userID = Guid.Parse(User.Identity.GetUserId()); var service = new LoanService(userID); var model = service.GetLoans(); return(View(model)); }
TestResult AddLoan() { using (var unitOfWork = new UnitOfWork(new BankModuleFactory(true))) { var RouteService = new ConsiderationRouteService(unitOfWork); var LoanService = new LoanService(unitOfWork); Loan testLoan = new Loan { ConsiderationRoute = RouteService.Get().First(), LoanPrepayment = LoanPrepayments.InterestForActuallyUsedTerm, LoanGuarantee = LoanGuarantees.Surety, LoanProviding = LoanProvidings.RevolvingCreditLine, LoanRepayment = LoanRepayments.Annuity, LoanType = LoanTypes.DebtConsolidation, MaxAmount = 1334m, Currency = "BLR", MinIncome = 100000m, MonthlyFee = 5m, IsFixedRateOfInterest = true, ProcessingFee = 0.5m, MaxTerm = 24, RateOfInterest = 5, MinScoringPoint = 5, Name = "TestCredit", FineRateOfInterest = 2m, Description = "Test Credit Description", IsObsolete = false }; LoanService.Add(testLoan); try { var result = unitOfWork.Commit(); if (result.Count > 0) return new TestResult(TestResultType.Failure, MethodBase.GetCurrentMethod().Name, result.First().ErrorMessage); } catch (Exception ex) { while (ex.InnerException != null) ex = ex.InnerException; return new TestResult(TestResultType.Failure, MethodBase.GetCurrentMethod().Name, ex.Message); } } using (var unitOfWork = new UnitOfWork(new BankModuleFactory(false))) { var LoanService = new LoanService(unitOfWork); Loan testLoan = LoanService.Get(loan => loan.Name == "TestCredit" && loan.Description == "Test Credit Description").FirstOrDefault(); if(testLoan == null) return new TestResult(TestResultType.Failure, MethodBase.GetCurrentMethod().Name, "Can't find added loan."); else return new TestResult(TestResultType.Success, MethodBase.GetCurrentMethod().Name, "Loan added successfully."); } }
TestResult DeleteLoan() { using (var unitOfWork = new UnitOfWork(new BankModuleFactory(false))) { var LoanService = new LoanService(unitOfWork); var testLoan = LoanService.Get(loan => loan.Name == "TestCredit++" && loan.Description == "Test Credit Description").FirstOrDefault(); LoanService.Delete(testLoan); try { var result = unitOfWork.Commit(); if (result.Count > 0) return new TestResult(TestResultType.Failure, MethodBase.GetCurrentMethod().Name, result.First().ErrorMessage); } catch (Exception ex) { while (ex.InnerException != null) ex = ex.InnerException; return new TestResult(TestResultType.Failure, MethodBase.GetCurrentMethod().Name, ex.Message); } } using (var unitOfWork = new UnitOfWork(new BankModuleFactory(false))) { var LoanService = new LoanService(unitOfWork); Loan testLoan = LoanService.Get(loan => loan.Name == "TestCredit++" && loan.Description == "Test Credit Description").FirstOrDefault(); if (testLoan != null) return new TestResult(TestResultType.Failure, MethodBase.GetCurrentMethod().Name, "Can find deleted loan."); else return new TestResult(TestResultType.Success, MethodBase.GetCurrentMethod().Name, "Loan deleted successfully."); } }
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); }
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); }