예제 #1
0
        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"));
        }
예제 #2
0
        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"));
        }