コード例 #1
0
        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));
        }
コード例 #2
0
        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));
        }