public async Task <EmployeeDTO> GetByIdAsync(int id)
        {
            try
            {
                var employee = await _employeeRepository.GetByIdAsync(id);

                var creator     = new ConcreteCreator();
                var employeeDTO = creator.GetEmployee(employee);
                return(employeeDTO);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
        public async Task <IEnumerable <EmployeeDTO> > GetAllAsync()
        {
            try
            {
                var employees = await _employeeRepository.GetAllAsync();

                var employeesDTO = new List <EmployeeDTO>();
                foreach (var employee in employees)
                {
                    var creator     = new ConcreteCreator();
                    var employeeDTO = creator.GetEmployee(employee);
                    employeesDTO.Add(employeeDTO);
                }
                return(employeesDTO);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }