Ejemplo n.º 1
0
 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));
 }
Ejemplo n.º 2
0
        // 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));
        }
Ejemplo n.º 3
0
        // 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));
        }
Ejemplo n.º 4
0
        // 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));
        }
Ejemplo n.º 5
0
        // 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));
        }
Ejemplo n.º 6
0
        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));
        }
Ejemplo n.º 7
0
        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));
        }
Ejemplo n.º 8
0
        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));
        }
Ejemplo n.º 9
0
        // GET: Employees/Create
        public IActionResult Create()
        {
            EmployeeRoleSelections employeeRoleSelections = new EmployeeRoleSelections();

            return(View(employeeRoleSelections));
        }