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 WorkersAdd(SpecificWorkerModel workerModel, List <long> competences) { ViewBag.Competences = _context.Set <CompetencesModel>().ToList(); foreach (var competenceId in competences) { var competence = _context.Set <CompetencesModel>().Find(competenceId); var workerCompetences = new SpecificWorkerCompetencesModel { Competence = competence, Worker = workerModel }; workerModel.SpecificWorkerCompetencesModels.Add(workerCompetences); } var employee = _workerService.TryGetEmployeeWithUsername(User.Identity.Name); if (employee == default) { workerModel.Email = User.Identity.Name; } _context.Set <SpecificWorkerModel>().Add(workerModel); var user = _context.Set <AppIdentityUser>().FirstOrDefault(u => u.Email == workerModel.Email); if (user != default) { user.Employee = workerModel; } _context.SaveChanges(); return(RedirectToAction("Workers")); }