/// <summary> /// Allows for the retrieval of an employee based on /// parameter <paramref name="id"/> /// </summary> public Data.Views.Employee GetEmployee(int id) { var empFromDB = DBContext.Employees.FirstOrDefault(x => x.Id == id); var emp = new Data.Views.Employee { DOB = empFromDB.DOB.Value, FirstName = empFromDB.FirstName, LastName = empFromDB.LastName, SSN = empFromDB.SSN, GetsDiscount = empFromDB.GetsDiscount, BenefitCostPerYear = empFromDB.BenefitCostPerYear, TotalBenefitCostPerYear = empFromDB.TotalBenefitCostPerYear, PayPeriodDeduction = empFromDB.TotalPayPeriodDeduction, NetPayAfterDeduction = empFromDB.NetPayAfterDeduction }; emp.Dependents = new List <Data.Views.Dependent>(); foreach (var d in empFromDB.Dependents) { var dep = new Data.Views.Dependent(); dep.FirstName = d.FirstName; dep.LastName = d.LastName; dep.DOB = d.DOB; dep.SSN = d.SSN; dep.GetsDiscount = d.GetsDiscount; dep.BenefitCostPerYear = d.BenefitCostPerYear; emp.Dependents.Add(dep); } return(emp); }
/// <summary> /// Allows a new employee to be created and saved to the database. /// Accepts parameter <paramref name="newEmployee"/> /// </summary> public int SaveEmployee(Data.Views.Employee newEmployee) { var emp = new Data.Employee { DOB = newEmployee.DOB.Value, FirstName = newEmployee.FirstName, LastName = newEmployee.LastName, SSN = newEmployee.SSN, SalaryPerYear = newEmployee.SalaryPerYear, GetsDiscount = newEmployee.FirstName.ToLower().Substring(0, 1) == "a" }; emp.BenefitCostPerYear = (emp.GetsDiscount) ? CalculateDiscount(1000m, .1m) : 1000m; emp.TotalBenefitCostPerYear = emp.BenefitCostPerYear; foreach (var d in newEmployee.Dependents.ToList()) { var dep = new Data.Dependent(); dep.FirstName = d.FirstName; dep.LastName = d.LastName; dep.DOB = d.DOB.Value; dep.SSN = d.SSN; dep.Emp_Id = newEmployee.EmployeeId; dep.GetsDiscount = d.FirstName.ToLower().Substring(0, 1) == "a"; dep.BenefitCostPerYear = (dep.GetsDiscount) ? CalculateDiscount(500m, .1m) : 500m; emp.TotalBenefitCostPerYear += dep.BenefitCostPerYear; emp.Dependents.Add(dep); } emp.TotalPayPeriodDeduction = CalculateDeduction(emp.TotalBenefitCostPerYear, 26m); // Add here pay check amount after deduction emp.NetPayAfterDeduction = CalculateGrossafterDeduction(2000m, emp.TotalPayPeriodDeduction.Value); DBContext.Employees.Add(emp); DBContext.SaveChanges(); return(emp.Id); }