public async Task <IActionResult> Create(EmployeeRoleSelections employeeRoleSelections) { if (!employeeRoleSelections.roleSelections.Any(m => m.Selected)) { ModelState.AddModelError("roleSelections", "You must select at least one role!"); } if (_context.Employee.Any(e => e.UserName == employeeRoleSelections.employee.UserName)) { ModelState.AddModelError("employee.UserName", "This user name already exists!"); } if (ModelState.IsValid) { _context.Add(employeeRoleSelections.employee); _context.SaveChanges(); foreach (RoleSelection roleSelection in employeeRoleSelections.roleSelections) { if (roleSelection.Selected) { EmployeeRole employeeRole = new EmployeeRole { RoleId = roleSelection.role.Id, EmployeeId = employeeRoleSelections.employee.Id }; _context.EmployeeRole.Add(employeeRole); } } _context.SaveChanges(); return(RedirectToAction("Index")); } return(View(employeeRoleSelections)); }
// GET: Employees/Edit/5 public async Task <IActionResult> Edit(int?id) { if (id == null) { return(NotFound()); } var employee = await _context.Employee.FindAsync(id); if (employee == null) { return(NotFound()); } var roles = _context.Role.ToList(); var roleSelections = new List <RoleSelection>(); foreach (Role role in roles) { bool selected = false; if (_context.EmployeeRole.Any(e => e.EmployeeId == id && e.RoleId == role.Id)) { selected = true; } roleSelections.Add(new RoleSelection(role, selected)); } EmployeeRoleSelections employeeRoleSelections = new EmployeeRoleSelections { employee = employee, roleSelections = roleSelections }; return(View(employeeRoleSelections)); }
// GET: Employees/Edit/5 public async Task <IActionResult> Edit(int?id) { if (id == null) { return(NotFound()); } var employee = await _context.Employee.SingleOrDefaultAsync(n => n.Id == id); if (employee == null) { return(NotFound()); } List <EmployeeRole> employeeRoles = (_context.EmployeeRole.Where(n => n.EmployeeId == id)).ToList(); EmployeeRoleSelections employeeRoleSelections = new EmployeeRoleSelections(); employeeRoleSelections.employee = employee; for (int i = 0; i < employeeRoleSelections.roleSelections.Count; i++) { if (employeeRoles.Exists(n => n.RoleId == employeeRoleSelections.roleSelections[i].role.Id)) { employeeRoleSelections.roleSelections[i].Selected = true; } } return(View(employeeRoleSelections)); }
// GET: Employees/Delete/5 public async Task <IActionResult> Delete(int?id) { if (id == null) { return(NotFound()); } var employee = await _context.Employee .FirstOrDefaultAsync(m => m.Id == id); if (employee == null) { return(NotFound()); } List <EmployeeRole> employeeRoles = (_context.EmployeeRole.Where(m => m.EmployeeId == id)).ToList(); EmployeeRoleSelections employeeRoleSelections = new EmployeeRoleSelections(); employeeRoleSelections.employee = employee; for (int i = 0; i < employeeRoleSelections.roleSelections.Count; i++) { if (employeeRoles.Exists(m => m.RoleId == employeeRoleSelections.roleSelections[i].role.Id)) { employeeRoleSelections.roleSelections[i].Selected = true; } } //EmployeeRoleSelections employeeRoleSelections = new EmployeeRoleSelections { employee = employee, roleSelections = roleSelections }; return(View(employeeRoleSelections)); }
// Default Async Create Task: /*public async Task<IActionResult> Create([Bind("Id,Name,UserName,Password")] Employee employee) * { * if (ModelState.IsValid) * { * _context.Add(employee); * await _context.SaveChangesAsync(); * return RedirectToAction(nameof(Index)); * } * return View(employee); * }*/ // GET: Employees/Edit/5 public async Task <IActionResult> Edit(int?id) { if (id == null) { return(NotFound()); } var employee = await _context.Employee.FindAsync(id); if (employee == null) { return(NotFound()); } // Return EmployeeRoleSelections model to View EmployeeRoleSelections employeeRoleSelections = new EmployeeRoleSelections(); employeeRoleSelections.employee = employee; var ERTable = _context.EmployeeRole .Include(er => er.Role) .Where(er => er.EmployeeId == id); // Set Job Title selections foreach (RoleSelection roleSelection in employeeRoleSelections.roleSelections) { if (ERTable.Any(er => er.Role.Id == roleSelection.role.Id)) { roleSelection.Selected = true; } } return(View(employeeRoleSelections)); }
public async Task <IActionResult> Edit(EmployeeRoleSelections employeeRoleSelections) { if (!employeeRoleSelections.roleSelections.Any(m => m.Selected)) { // Validate RoleSelections ModelState.AddModelError("roleSelections", "You must select at least one role!"); } if (_context.Employee.Any(e => e.UserName == employeeRoleSelections.employee.UserName && e.Id != employeeRoleSelections.employee.Id)) { // Validate user name ModelState.AddModelError("employee.UserName", "This user name already exists!"); } if (ModelState.IsValid) { // Update DB context: try { _context.Update(employeeRoleSelections.employee); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!EmployeeExists(employeeRoleSelections.employee.Id)) { return(NotFound()); } else { throw; } } // Reset EmployeeRoles var ERTable = _context.EmployeeRole .Where(er => er.EmployeeId == employeeRoleSelections.employee.Id); foreach (var roleRow in ERTable) { _context.EmployeeRole.Remove(roleRow); } foreach (RoleSelection roleSelection in employeeRoleSelections.roleSelections) { // Add EmployeeRoles if (roleSelection.Selected) { EmployeeRole employeeRole = new EmployeeRole { RoleId = roleSelection.role.Id, EmployeeId = employeeRoleSelections.employee.Id }; _context.EmployeeRole.Add(employeeRole); } } _context.SaveChanges(); return(RedirectToAction(nameof(Index))); } return(View(employeeRoleSelections)); }
public async Task <IActionResult> Edit(int id, EmployeeRoleSelections employeeRoleSelections) { if (!employeeRoleSelections.roleSelections.Any(mbox => mbox.Selected)) { ModelState.AddModelError("roleSelections", "You must select one role!"); } if (id != employeeRoleSelections.employee.Id) { return(NotFound()); } if (ModelState.IsValid) { try { _context.Update(employeeRoleSelections.employee); _context.SaveChanges(); var rolesSelected = _context.EmployeeRole.Where(e => e.EmployeeId == employeeRoleSelections.employee.Id).ToList(); _context.RemoveRange(rolesSelected); foreach (RoleSelection roleSelection in employeeRoleSelections.roleSelections) { if (roleSelection.Selected) { EmployeeRole employeeRole = new EmployeeRole { RoleId = roleSelection.role.Id, EmployeeId = employeeRoleSelections.employee.Id }; _context.EmployeeRole.Add(employeeRole); } } } catch (DbUpdateConcurrencyException) { if (!EmployeeExists(employeeRoleSelections.employee.Id)) { return(NotFound()); } else { throw; } } _context.SaveChanges(); return(RedirectToAction(nameof(Index))); } return(View(employeeRoleSelections)); }
public async Task <IActionResult> Edit(int id, EmployeeRoleSelections employeeRoleSelections) { if (!employeeRoleSelections.roleSelections.Any(m => m.Selected)) { ModelState.AddModelError("roleSelections", "You must select at least one role!"); } if (ModelState.IsValid) { try { var allEmployeeRoles = _context.EmployeeRole.Where(e => e.EmployeeId == id).ToList(); if (allEmployeeRoles.Count > 0) { _context.RemoveRange(allEmployeeRoles); } foreach (RoleSelection roleSelection in employeeRoleSelections.roleSelections) { if (roleSelection.Selected) { _context.EmployeeRole.Add(new EmployeeRole { EmployeeId = id, RoleId = roleSelection.role.Id }); } } _context.Update(employeeRoleSelections.employee); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { throw; } return(RedirectToAction(nameof(Index))); } return(View(employeeRoleSelections)); }
// GET: Employees/Create public IActionResult Create() { EmployeeRoleSelections employeeRoleSelections = new EmployeeRoleSelections(); return(View(employeeRoleSelections)); }