コード例 #1
0
        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());
        }
コード例 #2
0
        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());
        }
コード例 #3
0
        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"));
        }
コード例 #4
0
        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());
        }
コード例 #5
0
        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"));
        }
コード例 #6
0
        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());
        }