示例#1
0
        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));
            }
        }
示例#3
0
        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);
            }
        }