public EmployeeDto Create(EmployeeDto dto)
        {
            var employee = dto.MapTo <EmployeeDto, Employee>();

            UpdateSkills(dto, employee);

            var validationResult = employee.Validate();

            if (validationResult.IsInvalid)
            {
                throw new InvalidOperationException(validationResult.ToExceptionString());
            }

            employee = _employeeRepository.Save(employee);

            return(employee.MapTo <Employee, EmployeeDto>());
        }
        public EmployeeDto Update(EmployeeDto dto)
        {
            var employee = dto.MapTo <EmployeeDto, Employee>();

            if (NotExistReferralIds(dto))
            {
                throw new InvalidOperationException("Ids Invalidos");
            }

            UpdateSkills(dto, employee);

            var validationResult = employee.Validate();

            if (validationResult.IsInvalid)
            {
                throw new InvalidOperationException(validationResult.ToExceptionString());
            }

            employee.UpdateLastModifiedDate();
            employee = _employeeRepository.Update(employee);

            return(employee.MapTo <Employee, EmployeeDto>());
        }