public ActionResult Edit([Bind(Include = "Number,BillTypeName,BillTypeNumber,StaffNumber,Name,Gender,Department,WorkType,Position,IdentificationType,Nationality,IdentificationNumber,Entrydate,ClassOrder,AppSwitch,JobState,AbnormalChange,FreeCard,WorkProperty,ApplyOvertimeSwitch,Source,QualifyingPeriodFull,MaritalStatus,BirthDate,NativePlace,HealthCondition,Nation,Address,VisaOffice,HomeTelNumber,EducationBackground,GraduationSchool,SchoolMajor,Degree,Introducer,IndividualTelNumber,BankCardNumber,UrgencyContactMan,UrgencyContactAddress,UrgencyContactPhoneNumber,InBlacklist,PhysicalCardNumber,LeaveDate,LeaveType,LeaveReason,AccountVersion,AuditStatus,BindingNumber")] Staff staff) { if (ModelState.IsValid) { /*查找员工信息预留字段(value)*/ var fieldValueList = (from sr in db.StaffReserves join rf in db.ReserveFields on sr.FieldId equals rf.Id where sr.Number == staff.Number select new StaffViewModel { Number = sr.Id, Description = rf.Description, Value = sr.Value }).ToList(); /*给预留字段赋值*/ foreach (var temp in fieldValueList) { StaffReserve sr = db.StaffReserves.Find(temp.Number); sr.Value = Request[temp.Description]; db.SaveChanges(); } /*保存固定字段*/ db.Entry(staff).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } return(View(staff)); }
public ActionResult Create(Staff staff) { if (ModelState.IsValid) { var tmp = db.Staffs.Where(p => p.StaffNumber.Equals(staff.StaffNumber)).ToList(); if (tmp.Count != 0) { ModelState.AddModelError("", "抱歉,该工号已经被注册!"); return(View(staff)); } else { /*Step1:先保存员工固定字段*/ db.Staffs.Add(staff); db.SaveChanges(); /*查找员工基本信息表预留字段(name)*/ var fieldList = (from p in db.ReserveFields where p.TableName == "Staffs" select p).ToList(); ViewBag.fieldList = fieldList; /*遍历,保存员工基本信息预留字段*/ foreach (var temp in fieldList) { StaffReserve sr = new StaffReserve(); sr.Number = staff.Number; sr.FieldId = temp.Id; sr.Value = Request[temp.FieldName]; /*占位,为了在Index中显示整齐的格式*/ if (sr.Value == null) { sr.Value = " "; } db.StaffReserves.Add(sr); db.SaveChanges(); } return(RedirectToAction("Index")); } } return(View(staff)); }
public ActionResult DeleteConfirmed(int id) { /*Step1:删除预留字段*/ var item = (from sr in db.StaffReserves where sr.Number == id select new StaffViewModel { Number = sr.Id }).ToList(); foreach (var temp in item) { StaffReserve sr = db.StaffReserves.Find(temp.Number); db.StaffReserves.Remove(sr); } db.SaveChanges(); /*Step2:删除固定字段*/ Staff staff = db.Staffs.Find(id); db.Staffs.Remove(staff); db.SaveChanges(); return(RedirectToAction("Index")); }