public void UpdateEmployee(string name, string email, string Role, string UserId)
        {
            var employee = GetEmployee(UserId);

            if (Role == "Driver")
            {
                var driver = DriverRepository.GetById(employee.Id);
                driver.SetName(name);
                driver.SetEmail(email);
                DriverRepository.Update(driver);
            }
            else if (Role == "Supervisor")
            {
                var supervisor = SupervisorRepository.GetById(employee.Id);
                supervisor.SetEmail(email);
                supervisor.SetName(name);
                SupervisorRepository.Update(supervisor);
            }
            else if (Role == "Dispatcher")
            {
                var dispatcher = DispatcherRepository.GetById(employee.Id);
                dispatcher.SetName(name);
                dispatcher.SetEmail(email);
                DispatcherRepository.Update(dispatcher);
            }
        }
        public async Task <DispatcherResponse> UpdateAsync(int id, Dispatcher dispatcher)
        {
            var existing = await _dispatcherRepository.FindById(id);

            if (existing == null)
            {
                return(new DispatcherResponse("Dispatcher not found"));
            }
            existing.Name = dispatcher.Name;
            try
            {
                _dispatcherRepository.Update(existing);
                await _unitOfWork.CompleteAsync();

                return(new DispatcherResponse(existing));
            }
            catch (Exception e)
            {
                return(new DispatcherResponse($"An error ocurred while updating the Dispatcher: {e.Message}"));
            }
        }