public async Task <IActionResult> UpdateAsync([FromForm] ProjectEmployeesDto projectEmployees) { var employeesDb = _context.ProjectsEmployees .Where(pe => pe.ProjectId == projectEmployees.ProjectId) .Select(pe => pe.EmployeeId) .ToList(); var employeesToDelete = employeesDb.Except(projectEmployees.EmployeeIds); var employeesToAdd = projectEmployees.EmployeeIds.Except(employeesDb); var projectEmploye = new ProjectEmployee { ProjectId = projectEmployees.ProjectId, }; foreach (var employee in employeesToDelete) { projectEmploye.EmployeeId = employee; _context.ProjectsEmployees.Remove(projectEmploye); _context.SaveChanges(); } foreach (var employee in employeesToAdd) { projectEmploye.EmployeeId = employee; _context.ProjectsEmployees.Add(projectEmploye); _context.SaveChanges(); } await _appHub.Refresh(); return(Ok()); }
public async Task <IActionResult> UpdateAsync([FromForm] EmployeeProjectsDto employeeProjects) { var projectsDb = _context.ProjectsEmployees .Where(ep => ep.EmployeeId == employeeProjects.EmployeeId) .Select(ep => ep.ProjectId) .ToList(); var projectsToDelete = projectsDb.Except(employeeProjects.ProjectIds).ToList(); var projectsToAdd = employeeProjects.ProjectIds.Except(projectsDb).ToList(); var employeProject = new ProjectEmployee { EmployeeId = employeeProjects.EmployeeId }; foreach (var projectId in projectsToDelete) { employeProject.ProjectId = projectId; _context.ProjectsEmployees.Remove(employeProject); _context.SaveChanges(); } foreach (var projectId in projectsToAdd) { employeProject.ProjectId = projectId; _context.ProjectsEmployees.Add(employeProject); _context.SaveChanges(); } await _appHub.Refresh(); return(Ok()); }
public async Task <IActionResult> UpdateAsync(Employee employee) { if (ModelState.IsValid == false) { var titles = _context.Titles.ToList(); string viewName; if (employee.Id == 0) { viewName = "New"; } else { viewName = "Update"; } var viewModel = new EmployeeTitlesModel { Employee = employee, Titles = titles, ViewName = viewName }; return(View("EmployeeForm", viewModel)); } if (employee.Id == 0) { _context.Add(employee); } else { var emplyeeDb = _context.Employees.SingleOrDefault(e => e.Id == employee.Id); _mapper.Map(employee, emplyeeDb); } _context.SaveChanges(); await _appHub.Refresh(); return(RedirectToAction("Index")); }
public async Task <IActionResult> DeleteEmployee(int id) { var employee = _context.Employees .SingleOrDefault(e => e.Id == id); if (employee == null) { return(NotFound()); } var employeeProjects = _context.ProjectsEmployees .Where(pe => pe.EmployeeId == id); _context.Remove(employee); _context.RemoveRange(employeeProjects); _context.SaveChanges(); await _appHub.Refresh(); return(NoContent()); }
public async Task <IActionResult> UpdateAsync(Project project) { if (ModelState.IsValid == false) { var statuses = _context.Statuses.ToList(); string viewName; if (project.Id == 0) { viewName = "New"; } else { viewName = "Update"; } var viewModel = new ProjectStatusesModel { Project = project, Statuses = statuses, ViewName = viewName }; return(View("New", viewModel)); } if (project.Id == 0) { _context.Add(project); } else { var projectDb = _context.Projects.SingleOrDefault(p => p.Id == project.Id); _mapper.Map(project, projectDb); } _context.SaveChanges(); await _appHub.Refresh(); return(RedirectToAction("Index")); }
public async Task <IActionResult> DeleteProjectAsync(int id) { var project = _context.Projects .SingleOrDefault(p => p.Id == id); if (project == null) { return(NotFound()); } var projectEmployees = _context.ProjectsEmployees .Where(pe => pe.ProjectId == id); _context.Projects.Remove(project); _context.ProjectsEmployees.RemoveRange(projectEmployees); _context.SaveChanges(); await _appHub.Refresh(); return(NoContent()); }