public ActionResult Calculate(BenefitsEmployeeModel model) { if (!ModelState.IsValid) { return(View("Calculate", model)); } var benefitsEmployee = new BenefitEmployee(model.Employee.FirstName, model.Employee.LastName); if (model.Dependents != null && model.Dependents.Count > 0) { var dependents = new List <PaylocityBenefitsChallenge.Entities.Person>(); foreach (var dependent in model.Dependents) { var employeeDependent = new Person(dependent.FirstName, dependent.LastName); dependents.Add(employeeDependent); } benefitsEmployee.Dependents = dependents; } var response = benefitsMgr.Value.GetEmployeeCost(benefitsEmployee); EmployeeCostModel responseModel = new EmployeeCostModel(); responseModel.TotalBenefitCost = response.TotalBenefitsCostPerYear; responseModel.EmployeeCostPerPayPeriod = response.TotalEmployeeCostPerPayPeriod; responseModel.EmployeeCostPerYear = response.TotalEmployeeCostPerYear; return(View("ViewEmployeeCost", responseModel)); }
public decimal GetTotalBenefitsCostsForEmployee(BenefitEmployee employeeData) { decimal cost = 0.0m; try { cost = GetBenefitsCost(employeeData.Employee); costResult.BenefitCostForEmployeeOnly = cost; if (employeeData.Dependents != null && employeeData.Dependents.Count > 0) { foreach (var dependent in employeeData.Dependents) { costResult.BenefitCostForDependentsOnly += GetBenefitsCost(dependent); } } cost += costResult.BenefitCostForDependentsOnly; } catch (Exception ex) { cost = -1.0m; throw; } return(cost); }
public void Test_GetBenefitsCostForEmployeeOnlyWithDiscount() { BenefitEmployee employee = new BenefitEmployee("Aaron", "Smith"); BenefitsManager benefitsManager = new BenefitsManager(); var result = benefitsManager.GetTotalBenefitsCostsForEmployee(employee); Assert.That(result, Is.EqualTo(900.00m)); return; }
public void Test_GetBenefitsCostForEmployeeOnly() { BenefitEmployee employee = new BenefitEmployee("John", "Doe"); BenefitsManager benefitsManager = new BenefitsManager(); var result = benefitsManager.GetTotalBenefitsCostsForEmployee(employee); Assert.That(result, Is.EqualTo(1000.00m)); return; }
public void Test_GetBenefitsCostForEmployeeWithOneDependentBothDiscounts() { BenefitEmployee employee = new BenefitEmployee("Anna", "Waters"); employee.Dependents = new List <Person>(); employee.Dependents.Add(new Person("Andy", "Kirk")); BenefitsManager benefitsManager = new BenefitsManager(); var result = benefitsManager.GetTotalBenefitsCostsForEmployee(employee); Assert.That(result, Is.EqualTo(1350.00m)); return; }
public void Test_GetBenefitsCostForEmployeeWithOneDependentNoDiscount() { BenefitEmployee employee = new BenefitEmployee("Sarah", "Lee"); employee.Dependents = new List <Person>(); employee.Dependents.Add(new Person("Bill", "Jones")); BenefitsManager benefitsManager = new BenefitsManager(); var result = benefitsManager.GetTotalBenefitsCostsForEmployee(employee); Assert.That(result, Is.EqualTo(1500.00m)); return; }
public void Test_GetTotalEmployeeCostData() { var employee = new BenefitEmployee("test", "person"); employee.Dependents = new List <Person>(); employee.Dependents.Add(new Person("dependent", "one")); employee.Dependents.Add(new Person("dependent", "two")); employee.Dependents.Add(new Person("dependent", "three")); BenefitsManager benefitsManager = new BenefitsManager(); var result = benefitsManager.GetEmployeeCost(employee); Assert.That(result, Is.EqualTo(52000.00m)); }
public BenefitsCostResult GetEmployeeCost(BenefitEmployee employeeData) { try { costResult.TotalBenefitsCostPerYear = GetTotalBenefitsCostsForEmployee(employeeData); costResult.TotalEmployeeCostPerPayPeriod = GetEmployeeCostPerPayPeriod(costResult.TotalBenefitsCostPerYear); costResult.TotalEmployeeCostPerYear = GetEmployeeCostPerYear(costResult.TotalBenefitsCostPerYear); } catch (Exception ex) { costResult.ErrorDetails = ex.Message; } return(costResult); }
public void Test_GetBenefitsCostForEmployeeWithFiveDependentsWithDiscounts() { BenefitEmployee employee = new BenefitEmployee("George", "Wright"); employee.Dependents = new List <Person>(); employee.Dependents.Add(new Person("Bob", "Wright")); employee.Dependents.Add(new Person("Allen", "Wright")); employee.Dependents.Add(new Person("Alice", "Wright")); employee.Dependents.Add(new Person("Mary", "Wright")); employee.Dependents.Add(new Person("Frank", "Wright")); BenefitsManager benefitsManager = new BenefitsManager(); var result = benefitsManager.GetTotalBenefitsCostsForEmployee(employee); Assert.That(result, Is.EqualTo(3400.00m)); return; }