public string SubmitLoanApplication(LoanApplicationDto loanApplicationDto, ClaimsPrincipal principal)
        {
            var user = operators.WithLogin(principal.Identity.Name);

            var application = new DomainModel.LoanApplication
                              (
                Guid.NewGuid().ToString(),
                new Customer
                (
                    new NationalIdentifier(loanApplicationDto.CustomerNationalIdentifier),
                    new Name(loanApplicationDto.CustomerFirstName, loanApplicationDto.CustomerLastName),
                    loanApplicationDto.CustomerBirthdate,
                    new MonetaryAmount(loanApplicationDto.CustomerMonthlyIncome),
                    new Address
                    (
                        loanApplicationDto.CustomerAddress.Country,
                        loanApplicationDto.CustomerAddress.ZipCode,
                        loanApplicationDto.CustomerAddress.City,
                        loanApplicationDto.CustomerAddress.Street
                    )
                ),
                new Property
                (
                    new MonetaryAmount(loanApplicationDto.PropertyValue),
                    new Address
                    (
                        loanApplicationDto.PropertyAddress.Country,
                        loanApplicationDto.PropertyAddress.ZipCode,
                        loanApplicationDto.PropertyAddress.City,
                        loanApplicationDto.PropertyAddress.Street
                    )
                ),
                new Loan
                (
                    new MonetaryAmount(loanApplicationDto.LoanAmount),
                    loanApplicationDto.LoanNumberOfYears,
                    new Percent(loanApplicationDto.InterestRate)
                ),
                user
                              );

            loanApplications.Add(application);

            unitOfWork.CommitChanges();

            return(application.Number);
        }
Beispiel #2
0
            public Task <string> Handle(Command request, CancellationToken cancellationToken)
            {
                var user = operators.WithLogin(request.CurrentUser.Identity.Name);

                var application = new DomainModel.LoanApplication
                                  (
                    Guid.NewGuid().ToString(),
                    new Customer
                    (
                        new NationalIdentifier(request.LoanApplication.CustomerNationalIdentifier),
                        new Name(request.LoanApplication.CustomerFirstName, request.LoanApplication.CustomerLastName),
                        request.LoanApplication.CustomerBirthdate,
                        new MonetaryAmount(request.LoanApplication.CustomerMonthlyIncome),
                        new Address
                        (
                            request.LoanApplication.CustomerAddress.Country,
                            request.LoanApplication.CustomerAddress.ZipCode,
                            request.LoanApplication.CustomerAddress.City,
                            request.LoanApplication.CustomerAddress.Street
                        )
                    ),
                    new Property
                    (
                        new MonetaryAmount(request.LoanApplication.PropertyValue),
                        new Address
                        (
                            request.LoanApplication.PropertyAddress.Country,
                            request.LoanApplication.PropertyAddress.ZipCode,
                            request.LoanApplication.PropertyAddress.City,
                            request.LoanApplication.PropertyAddress.Street
                        )
                    ),
                    new Loan
                    (
                        new MonetaryAmount(request.LoanApplication.LoanAmount),
                        request.LoanApplication.LoanNumberOfYears,
                        new Percent(request.LoanApplication.InterestRate)
                    ),
                    user
                                  );

                loanApplications.Add(application);

                unitOfWork.CommitChanges();

                return(Task.FromResult(application.Number));
            }
Beispiel #3
0
 public void Add(DomainModel.LoanApplication loanApplication)
 {
     documentSession.Insert(loanApplication);
 }
Beispiel #4
0
 public void Add(DomainModel.LoanApplication loanApplication)
 {
     applications[loanApplication.Id] = loanApplication;
 }
Beispiel #5
0
 public LoanApplicationAssert(DomainModel.LoanApplication loanApplication)
 {
     this.loanApplication = loanApplication;
 }
Beispiel #6
0
 public static LoanApplicationAssert That(DomainModel.LoanApplication loanApplication)
 => new LoanApplicationAssert(loanApplication);