/// <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();
            }
        }
コード例 #2
0
        public async Task <ActionResult> EditEmployeeOfficialDetailsAsync([FromBody] EditEmployeeOfficialInformationDto employeeOfficialDetails)
        {
            await _employeeService.EditEmployeeOfficialDetailsAsync(employeeOfficialDetails);

            return(Ok());
        }