public async Task <List <SearchResultModel> > GetSearchResult(string query, string locale, SearchResultModel.EntityType queryType = SearchResultModel.EntityType.Unknown) { var results = new List <SearchResultModel>(); var answerSearchResult = await GetAnswerSearchResult(query, locale); if (answerSearchResult != null) { results.Add(answerSearchResult); return(results); } var entitySearchResult = await GetEntitySearchResult(query); var webSearchResult = await GetWebSearchResult(query); if (entitySearchResult != null) { foreach (var entity in entitySearchResult.Value) { results.Add(new SearchResultModel(entity)); } } if (webSearchResult != null && webSearchResult.WebPages != null) { foreach (var webResult in webSearchResult.WebPages.Value) { results.Add(new SearchResultModel(webResult.Url)); } } var personResults = new List <SearchResultModel>(); var movieResults = new List <SearchResultModel>(); foreach (var result in results) { if (result.Type == SearchResultModel.EntityType.Person) { personResults.Add(result); } else if (result.Type == SearchResultModel.EntityType.Movie) { movieResults.Add(result); } } switch (queryType) { case SearchResultModel.EntityType.Person: return(personResults); case SearchResultModel.EntityType.Movie: return(movieResults); default: if (personResults.Any()) { return(personResults); } else { return(movieResults); } } }
public void Clear() { SearchEntityName = string.Empty; SearchEntityType = SearchResultModel.EntityType.Unknown; }