public ActionResult Create([Bind(Include = "Id,Name,JobDescription,Number,Department,HourlyPay,Bonus,EmployeeTypeId")] Employee employee) { if (ModelState.IsValid) { Factory.EmployeeManagerFactory empFactory = new Factory.EmployeeManagerFactory(); Managers.IEmployeeManager empManager = empFactory.GetEmployeeManager(employee.EmployeeTypeId); employee.HourlyPay = empManager.GetHourlyPay(); employee.Bonus = empManager.GetBonus(); db.Employee.Add(employee); db.SaveChanges(); return(RedirectToAction("Index")); } ViewBag.EmployeeTypeId = new SelectList(db.Employee_Type, "Id", "EmployeeType", employee.EmployeeTypeId); return(View(employee)); }
public ActionResult Create([Bind(Include = "Id,Name,JobDescription,Number,Department,HourlyPay,Bonus,EmployeeTypeID")] Employee employee) { if (ModelState.IsValid) { IComputerFactory factory = new EmployeeSystemFactory().Create(employee); EmployeeSystemManager manager = new EmployeeSystemManager(factory); employee.ComputerDetails = manager.GetSystemDetails(); Factory.EmployeeManagerFactory empFactory = new Factory.EmployeeManagerFactory(); //Factory Method Pattern //BaseEmployeeFactory empfactory = new EmployeeManagerFactory().CreateFactory(employee); //empfactory.ApplySalary(); //Factory Pattern //Factory.EmployeeManagerFactory empFactory = new Factory.EmployeeManagerFactory(); //IEmployeeManager empManager = empFactory.GetEmployeeManager(employee.EmployeeTypeID); //employee.Bonus = empManager.GetBonus(); //employee.HourlyPay = empManager.GetPay(); //if(employee.EmployeeTypeID==1) //{ // employee.HourlyPay = 8; // employee.Bonus = 10; //} //else if(employee.EmployeeTypeID==2) //{ // employee.HourlyPay = 12; // employee.Bonus = 5; //} db.Employees.Add(employee); db.SaveChanges(); return(RedirectToAction("Index")); } ViewBag.EmployeeTypeID = new SelectList(db.Employee_Type, "Id", "EmployeeType", employee.EmployeeTypeID); return(View(employee)); }