Beispiel #1
0
 public async Task <IActionResult> EditEmployees(int id, ShopEmployeesEditViewModel viewmodel)
 {
     if (id != viewmodel.Shop.Id)
     {
         return(NotFound());
     }
     try
     {
         IEnumerable <int>       listEmployees = viewmodel.SelectedEmployees;
         IQueryable <Employment> toBeRemoved   = _context.Employment.Where(s => !listEmployees.Contains(s.EmployeeId) && s.ShopId == id);
         _context.Employment.RemoveRange(toBeRemoved);
         IEnumerable <int> existEmployees = _context.Employment.Where(s => listEmployees.Contains(s.EmployeeId) && s.ShopId == id).Select(s => s.EmployeeId);
         IEnumerable <int> newEmployees   = listEmployees.Where(s => !existEmployees.Contains(s));
         foreach (int employeeId in newEmployees)
         {
             _context.Employment.Add(new Employment {
                 EmployeeId = employeeId, ShopId = id, StartDate = DateTime.Now
             });
         }
         await _context.SaveChangesAsync();
     }
     catch (DbUpdateConcurrencyException)
     {
         if (!ShopExists(viewmodel.Shop.Id))
         {
             return(NotFound());
         }
         else
         {
             throw;
         }
     }
     return(RedirectToAction("Index", "Employments", new { id = viewmodel.Shop.Id }));
 }
Beispiel #2
0
        public async Task <IActionResult> EditEmployees(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            var shop = _context.Shop.Where(s => s.Id == id).Include(s => s.Employees).First();

            if (shop == null)
            {
                return(NotFound());
            }

            ShopEmployeesEditViewModel viewmodel = new ShopEmployeesEditViewModel
            {
                Shop              = shop,
                EmployeeList      = new MultiSelectList(_context.Employee, "Id", "FullName"),
                SelectedEmployees = shop.Employees.Select(sa => sa.EmployeeId)
            };

            return(View(viewmodel));
        }