private void UpdateEmployeeSubjects(AppDbContext context, UpdateEmployeeRequestModel request, Employee employee) { List <EmployeeSubject> employeeSubjectList = new List <EmployeeSubject>(); foreach (Subject subject in request.LearnedSubjects) { EmployeeSubject employeeSubject = new EmployeeSubject() { Employee = employee, EmployeeId = employee.Id, Subject = subject, SubjectId = subject.Id }; employeeSubjectList.Add(employeeSubject); } employee.LearnedSubjects = employeeSubjectList; }
public async Task <ActionResult <EmployeeDTO> > UpdateEmployee(Guid id, [FromBody] UpdateEmployeeRequestModel request) { try { Employee employee = await _repository.UpdateEmployee(id, request); if (request.Email != null && request.Email.ToUpperInvariant() != employee.Email.ToUpperInvariant()) { employee = await UpdateCredentials(employee, request.Email); } return(_dtoService.EmployeeToDTO(employee)); } catch (Exception exception) { return(BadRequest(exception.Message)); } }
public async Task <Employee> UpdateEmployee(Guid id, UpdateEmployeeRequestModel request) { using (var appDbContext = _context) { Employee employee = await GetEmployee(appDbContext, id); appDbContext.Entry(employee).CurrentValues.SetValues( new { FirstName = request.FirstName ?? employee.FirstName, LastName = request.LastName ?? employee.LastName, Email = request.Email ?? employee.Email }); if (request.LearnedSubjects != null) { UpdateEmployeeSubjects(appDbContext, request, employee); } await appDbContext.SaveChangesAsync(); return(employee); } }