/// <summary> /// this method is used to edit the employees's official details /// </summary> /// <param name="employeeOfficialDetails">Employee Official Details</param> public async Task EditEmployeeOfficialDetailsAsync(EditEmployeeOfficialInformationDto employeeOfficialDetails) { if (employeeOfficialDetails == null) { throw new Exception(" Employee details to be edited are not mentioned"); } var oldEmployeeData = await _employeeRepository.GetEmployeeInformationAsync(employeeOfficialDetails.Id); _mapper.Map(employeeOfficialDetails, oldEmployeeData); oldEmployeeData.ModifiedAt = DateTime.UtcNow; oldEmployeeData.Languages = JsonConvert.SerializeObject(employeeOfficialDetails.Languages); oldEmployeeData.Gender = employeeOfficialDetails.Gender.ToLower(); var department = await _departmentDesignationRepository.GetDepartmentById(employeeOfficialDetails.Department.Id); var designation = await _departmentDesignationRepository.GetDesignationById(employeeOfficialDetails.Designation.Id); var departmentDesignation = await _departmentDesignationRepository.GetDepartmentDesignationAsync(department.Id, designation.Id); oldEmployeeData.DepartmentDesignationId = departmentDesignation.Id; await _employeeRepository.SaveChangesAsync(); var skills = await _employeeSkillRepository.GetEmployeeSkills(employeeOfficialDetails.Id); skills.PrimarySkills = JsonConvert.SerializeObject(employeeOfficialDetails.PrimarySkill); skills.SecondarySkills = JsonConvert.SerializeObject(employeeOfficialDetails.SecondarySkill); await _employeeSkillRepository.SaveChangesAsync(); var oldReportingManager = await _reportingManagerRepository.GetReportingManager(employeeOfficialDetails.Id); if (employeeOfficialDetails.ReportingManager.Id != null) { var newReportingManager = new ReportingManager { EmployeeId = employeeOfficialDetails.Id, ReportingManagerId = employeeOfficialDetails.ReportingManager.Id }; if (oldReportingManager != null) { oldReportingManager.ReportingManagerId = employeeOfficialDetails.ReportingManager.Id; } else { _reportingManagerRepository.AddReportingManager(newReportingManager); } await _reportingManagerRepository.SaveChangesAsync(); } }
public async Task <ActionResult> EditEmployeeOfficialDetailsAsync([FromBody] EditEmployeeOfficialInformationDto employeeOfficialDetails) { await _employeeService.EditEmployeeOfficialDetailsAsync(employeeOfficialDetails); return(Ok()); }