示例#1
0
 public Salary(string name, double amount, double pensionPct, double employerPensionPct, bool studentLoan)
 {
     this.Name                 = name;
     this.Amount               = amount;
     this.StudentLoan          = studentLoan;
     this.EmployeeContribution = new PensionContribution(pensionPct, amount);
     this.EmployerContribution = new PensionContribution(employerPensionPct, amount);
 }
        private static Person PersonStatus(PersonDto dto, EmergencyFundSpec emergencyFundSpec)
        {
            var rentalInfos = dto.Rental == null ? new List <RentalInfo>() : dto.Rental.Select(infoDto => new RentalInfo()
            {
                CurrentValue        = Money.Create(infoDto.CurrentValue),
                Expenses            = Money.Create(infoDto.Expenses),
                GrossIncome         = Money.Create(infoDto.GrossRent),
                Repayment           = infoDto.Repayment,
                MortgagePayments    = Money.Create(infoDto.MortgageCosts),
                OutstandingMortgage = Money.Create(infoDto.OutstandingMortgage),
                RemainingTerm       = infoDto.RemainingTerm
            });

            var dob = DateTime.Parse(dto.Dob);

            var salaryStepInputs = new List <SalaryStep>();
            var salarySteps      = dto.SalarySteps.Where(step => !string.IsNullOrWhiteSpace(step.Age) && !string.IsNullOrWhiteSpace(step.Amount))
                                   .Select(step => new SalaryStep(step.Date ?? dob.AddYears(Convert.ToInt32(step.Age)), Money.Create(step.Amount)));

            salaryStepInputs.AddRange(salarySteps);

            var person = new Person
            {
                Dob                    = dob,
                Salary                 = Money.Create(dto.Salary),
                SalaryStepInputs       = salaryStepInputs,
                Sex                    = dto.Female ? Sex.Female : Sex.Male,
                EmergencyFundSpec      = emergencyFundSpec,
                ExistingSavings        = Money.Create(dto.Savings),
                ExistingPrivatePension = Money.Create(dto.Pension),
                EmployerContribution   = PensionContribution.Create(dto.EmployerContribution),
                EmployeeContribution   = PensionContribution.Create(dto.EmployeeContribution),
                NiContributingYears    = string.IsNullOrWhiteSpace(dto.NiContributingYears) ? (int?)null : Convert.ToInt32(dto.NiContributingYears),
                RentalPortfolio        = new RentalPortfolio(rentalInfos.ToList()),
                Children               = dto.Children ?? new List <DateTime>(),
            };

            return(person);
        }