public static async Task <IList <string> > ProcessAsync(IOwinContext context, WebMediaType mediaType, string filterField, string op, int?limit, WebSortOrder?order) { switch (mediaType) { case WebMediaType.Drive: return(AutoSuggestion.GetValuesForField(filterField, await GetFileSystemDrives.ProcessAsync(context, null, order), op, limit).ToList()); case WebMediaType.Movie: return(AutoSuggestion.GetValuesForField(filterField, await GetMoviesDetailed.ProcessAsync(context, null, null, order), op, limit).ToList()); case WebMediaType.MusicAlbum: return(AutoSuggestion.GetValuesForField(filterField, await GetMusicAlbumsBasic.ProcessAsync(context, null, null, order), op, limit).ToList()); case WebMediaType.MusicArtist: return(AutoSuggestion.GetValuesForField(filterField, await GetMusicArtistsDetailed.ProcessAsync(context, null, null, order), op, limit).ToList()); case WebMediaType.MusicTrack: return(AutoSuggestion.GetValuesForField(filterField, await GetMusicTracksDetailed.ProcessAsync(context, null, null, order), op, limit).ToList()); case WebMediaType.Picture: return(AutoSuggestion.GetValuesForField(filterField, await GetPicturesDetailed.ProcessAsync(context, null, null, null), op, limit).ToList()); case WebMediaType.Playlist: return(AutoSuggestion.GetValuesForField(filterField, await GetPlaylists.ProcessAsync(context), op, limit).ToList()); case WebMediaType.TVEpisode: return(AutoSuggestion.GetValuesForField(filterField, await GetTVEpisodesDetailed.ProcessAsync(context, null, null, order), op, limit).ToList()); case WebMediaType.TVShow: return(AutoSuggestion.GetValuesForField(filterField, await GetTVShowsDetailed.ProcessAsync(context, null, null, order), op, limit).ToList()); default: throw new BadRequestException(string.Format("GetFilterValues() called with unsupported mediaType='{0}' filterField='{1}' op='{2}' limit='{3}'", mediaType, filterField, op, limit)); } }