public ActionResult Delete(string id, string uName) { var uid = _context.AppUsers.Where(u => u.UserName == uName).FirstOrDefault().Id; try { RepairEmpModel repairEmp = _context.RepairEmps.Find(id, uid); _context.RepairEmps.Remove(repairEmp); _context.SaveChanges(); // Recount the all repair time, and set value to RepairDtl. RepairDtlModel dtl = _context.RepairDtls.Where(d => d.DocId == repairEmp.DocId) .FirstOrDefault(); if (dtl != null) { int hr = _context.RepairEmps.Where(p => p.DocId == repairEmp.DocId) .Select(p => p.Hour) .DefaultIfEmpty(0).Sum(); decimal min = _context.RepairEmps.Where(p => p.DocId == repairEmp.DocId) .Select(p => p.Minute) .DefaultIfEmpty(0).Sum(); dtl.Hour = hr + Decimal.Round(min / 60m, 2); _context.Entry(dtl).State = EntityState.Modified; _context.SaveChanges(); } return(new JsonResult(repairEmp) { Value = new { success = true, error = "" } }); } catch (Exception e) { throw new Exception(e.Message); } }
public IActionResult Create(RepairEmpModel repairEmp) { if (ModelState.IsValid) { _context.BMEDRepairEmps.Add(repairEmp); _context.SaveChanges(); // Recount the all repair time, and set value to RepairDtl. RepairDtlModel dtl = _context.BMEDRepairDtls.Where(d => d.DocId == repairEmp.DocId) .FirstOrDefault(); if (dtl != null) { int hr = _context.BMEDRepairEmps.Where(p => p.DocId == repairEmp.DocId) .Select(p => p.Hour) .DefaultIfEmpty(0).Sum(); decimal min = _context.BMEDRepairEmps.Where(p => p.DocId == repairEmp.DocId) .Select(p => p.Minute) .DefaultIfEmpty(0).Sum(); dtl.Hour = hr + Decimal.Round(min / 60m, 2); _context.BMEDRepairDtls.Update(dtl); } return(RedirectToAction("Index")); } return(View(repairEmp)); }
public async Task <IViewComponentResult> InvokeAsync(string docId) { var repairEmps = _context.BMEDRepairEmps.ToList(); RepairEmpModel emp = repairEmps.Where(p => p.DocId == docId) .FirstOrDefault(); var ur = _userRepo.Find(us => us.UserName == this.User.Identity.Name).FirstOrDefault(); if (emp == null) { emp = new RepairEmpModel(); emp.DocId = docId; emp.UserId = ur.Id; } /* Get all engineers by role. */ var allEngs = roleManager.GetUsersInRole("MedEngineer").ToList(); List <SelectListItem> list = new List <SelectListItem>(); SelectListItem li = new SelectListItem(); foreach (string l in allEngs) { var u = _context.AppUsers.Where(a => a.UserName == l).FirstOrDefault(); if (u != null) { li = new SelectListItem(); li.Text = u.FullName; li.Value = u.Id.ToString(); list.Add(li); } } ViewData["EmpList"] = new SelectList(list, "Value", "Text"); RepairFlowModel rf = _context.BMEDRepairFlows.Where(f => f.DocId == docId) .Where(f => f.Status == "?").FirstOrDefault(); var isEngineer = _context.UsersInRoles.Where(u => u.AppRoles.RoleName == "MedEngineer" && u.UserId == ur.Id).FirstOrDefault(); if (!(rf.Cls.Contains("工程師") && rf.UserId == ur.Id)) /* 流程 => 其他 */ { if (rf.Cls.Contains("工程師") && isEngineer != null) /* 流程 => 工程師,Login User => 非負責之工程師 */ { return(View(emp)); } AppUserModel appuser; List <RepairEmpModel> emps = repairEmps.Where(p => p.DocId == docId).ToList(); emps.ForEach(rp => { rp.UserName = (appuser = _context.AppUsers.Find(rp.UserId)) == null ? "" : appuser.UserName; rp.FullName = (appuser = _context.AppUsers.Find(rp.UserId)) == null ? "" : appuser.FullName; }); return(View("Details", emps)); } /* 流程 => 工程師,Login User => 負責之工程師 */ return(View(emp)); }
public ActionResult Edit(RepairEmpModel repairEmp) { if (ModelState.IsValid) { //_context.RepairEmps.Add(repairEmp); //_context.SaveChanges(); var ExistRepairEmp = _context.RepairEmps.Find(repairEmp.DocId, repairEmp.UserId); if (ExistRepairEmp != null) { return(new JsonResult(repairEmp) { Value = new { isExist = true, error = "資料已存在!" } }); } else { _repempRepo.Create(repairEmp); } // Recount the all repair time, and set value to RepairDtl. RepairDtlModel dtl = _context.RepairDtls.Where(d => d.DocId == repairEmp.DocId) .FirstOrDefault(); if (dtl != null) { int hr = _context.RepairEmps.Where(p => p.DocId == repairEmp.DocId) .Select(p => p.Hour) .DefaultIfEmpty(0).Sum(); decimal min = _context.RepairEmps.Where(p => p.DocId == repairEmp.DocId) .Select(p => p.Minute) .DefaultIfEmpty(0).Sum(); dtl.Hour = hr + Decimal.Round(min / 60m, 2); _context.Entry(dtl).State = EntityState.Modified; _context.SaveChanges(); } // Return ViewComponent for ajax request. return(ViewComponent("RepEmpList", new { id = repairEmp.DocId })); } else { string msg = ""; foreach (var error in ViewData.ModelState.Values.SelectMany(modelState => modelState.Errors)) { msg += error.ErrorMessage + Environment.NewLine; } throw new Exception(msg); } }
public async Task <IViewComponentResult> InvokeAsync(string docId) { var repairEmps = _context.RepairEmps.ToList(); RepairEmpModel emp = repairEmps.Where(p => p.DocId == docId) .FirstOrDefault(); var ur = _userRepo.Find(us => us.UserName == this.User.Identity.Name).FirstOrDefault(); if (emp == null) { emp = new RepairEmpModel(); emp.DocId = docId; emp.UserId = ur.Id; } /* Get all engineers. */ //var engineerList = _context.EngsInDepts.Include(e => e.AppUsers).Include(e => e.Departments) // .GroupBy(e => e.EngId).Select(group => group.First()).ToList(); //List<SelectListItem> uids = new List<SelectListItem>(); //foreach (var item in engineerList) //{ // uids.Add(new SelectListItem // { // Text = item.AppUsers.FullName, // Value = item.AppUsers.Id.ToString(), // }); //} //ViewData["EmpList"] = new SelectList(uids, "Value", "Text", ur.Id); /* Get all engineers by role. */ var allEngs = roleManager.GetUsersInRole("RepEngineer").ToList(); List <SelectListItem> list = new List <SelectListItem>(); SelectListItem li = new SelectListItem(); foreach (string l in allEngs) { var u = _context.AppUsers.Where(a => a.UserName == l).FirstOrDefault(); if (u != null) { li = new SelectListItem(); li.Text = u.FullName; li.Value = u.Id.ToString(); list.Add(li); } } ViewData["EmpList"] = new SelectList(list, "Value", "Text"); RepairFlowModel rf = _context.RepairFlows.Where(f => f.DocId == docId) .Where(f => f.Status == "?").FirstOrDefault(); var isEngineer = _context.UsersInRoles.Where(u => u.AppRoles.RoleName == "RepEngineer" && u.UserId == ur.Id).FirstOrDefault(); /* 查無處理中流程 => 已結案 或 已廢除 */ if (rf == null) { /* Role => 工務經辦 or Admin */ if (userManager.IsInRole(this.UserClaimsPrincipal, "RepToDo") == true || userManager.IsInRole(this.UserClaimsPrincipal, "Admin") == true) { return(View(emp)); } } if (!(rf.Cls.Contains("工程師") && rf.UserId == ur.Id)) /* 流程 => 其他 */ { if (rf.Cls.Contains("工程師") && isEngineer != null) /* 流程 => 工程師,Login User => 非負責之工程師 */ { return(View(emp)); } AppUserModel appuser; List <RepairEmpModel> emps = repairEmps.Where(p => p.DocId == docId).ToList(); emps.ForEach(rp => { rp.UserName = (appuser = _context.AppUsers.Find(rp.UserId)) == null ? "" : appuser.UserName; rp.FullName = (appuser = _context.AppUsers.Find(rp.UserId)) == null ? "" : appuser.FullName; }); return(View("Details", emps)); } /* 流程 => 工程師,Login User => 負責之工程師 */ return(View(emp)); }