public IList <Error> FilteredErrors(int env, int?searchField, string searchString) { var errorsList = new List <Error>(); if (searchString == string.Empty || searchField == 0) { errorsList = _context.Errors .Where(x => x.EnvironmentId == env || env <= 0) .OrderBy(x => x.LevelId) .ToList(); } else { errorsList = searchField switch { 1 => _context.Errors .Where(x => x.Level == _levelService.GetByName(searchString)) .ToList(), 2 => _context.Errors .Where(x => x.Details.Contains(searchString)) .OrderBy(x => x.LevelId) .ToList(), 3 => _context.Errors .Where(x => x.Origin.Contains(searchString)) .OrderBy(x => x.LevelId) .ToList(), _ => errorsList }; errorsList = errorsList .Where(x => x.EnvironmentId == env || env <= 0) .ToList(); } return(errorsList); }