public async Task <IEnumerable <DriverDto> > GetDrivers(DriversResourceParameters driversResourceParameters) { try { _logger.LogInformation(LoggingEvents.ListItems, "Get all Drivers with filter", null); if (driversResourceParameters == null) { throw new ArgumentNullException(nameof(driversResourceParameters)); } if (string.IsNullOrWhiteSpace(driversResourceParameters.Name)) { return(await GetDrivers()); } _logger.LogInformation(LoggingEvents.ListItems, "Get all Drivers with name filter", null); var nameFilter = driversResourceParameters.Name.Trim().ToLower(); var drivers = await _driversRepository.GetByName(NameToTitleCase(nameFilter)); if (drivers.Count() == 0) { _logger.LogInformation(LoggingEvents.GetItem, "No Drivers found", null); return(Enumerable.Empty <DriverDto>()); } return(drivers.Select(d => d.Map())); } catch (Exception ex) { _logger.LogError(LoggingEvents.ListItems, ex, ex.Message, null); throw; } }