public IActionResult WorkersUpdate(int id, WorkerUpdateModel workerUpdateModel) { workerUpdateModel.Worker.Id = id; var specificWorkerCompetences = _context.Set <SpecificWorkerCompetencesModel>(); var competences = _context.Set <CompetencesModel>(); var oldSpecificWorkerCompetencesModels = specificWorkerCompetences.Where(x => x.WorkerId == id); specificWorkerCompetences.RemoveRange(oldSpecificWorkerCompetencesModels); foreach (var competenceId in workerUpdateModel.NewCompetencesIds) { var competence = competences.Find(competenceId); var workerCompetences = new SpecificWorkerCompetencesModel { Competence = competence, Worker = workerUpdateModel.Worker }; workerUpdateModel.Worker.SpecificWorkerCompetencesModels.Add(workerCompetences); specificWorkerCompetences.Add(workerCompetences); } _context.Entry(workerUpdateModel.Worker.Position).State = EntityState.Modified; _context.Entry(workerUpdateModel.Worker).State = EntityState.Modified; _context.SaveChanges(); return(RedirectToAction("Workers")); }
public IActionResult WorkersUpdate(int id) { var worker = _workerService.GetWorker(id); var competences = _context.Set <CompetencesModel>(); WorkerUpdateModel workerUpdateModel = new WorkerUpdateModel { Worker = worker, Competences = competences.ToList() }; return(View(workerUpdateModel)); }