コード例 #1
0
        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;
            }
        }