public async Task <List <SearchTermHistory> > GetSearchTermHistory(string searchTerm) { SearchTermHistory termHistory = new SearchTermHistory(); try { List <SearchTermHistory> termHistoryList = await _context.SearchTermHistory.Where(x => x.SearchTerm == searchTerm).ToListAsync(); return(termHistoryList); } catch (Exception ex) { throw ex; } }
public async Task <SearchTermHistory> InsertSearchTermHistory(string searchTerm) { SearchTermHistory searchTermHistory = new SearchTermHistory(); try { searchTermHistory.SearchedOn = DateTime.Now; searchTermHistory.SearchTerm = searchTerm; _context.SearchTermHistory.Add(searchTermHistory); await _context.SaveChangesAsync(); } catch (Exception ex) { throw ex; } return(searchTermHistory); }
public async Task <Word> Search(string searchTerm) { Word word = new Word(); try { word.SearchTerm = searchTerm; List <SearchTermHistory> termHistory = await _repository.GetSearchTermHistory(searchTerm); if (termHistory == null || termHistory.Count <= 0) { SearchTermHistory insertSearchTermHistory = await _repository.InsertSearchTermHistory(searchTerm); word.SearchResults = await _repository.SearchResultsFromDictionaryApi(searchTerm); if (word.SearchResults != null && word.SearchResults.Count > 0) { word.IsOffensive = word.SearchResults.FirstOrDefault().Meta.Offensive; SearchResultsHistory insertSearchResultHistory = await _repository.InsertSearchResultsHistory(word.SearchResults, insertSearchTermHistory.Id); } } else { int searchTermHistoryId = termHistory.FirstOrDefault().Id; List <SearchResultsHistory> resultHistory = await _repository.GetSearchResultHistory(searchTermHistoryId); if (resultHistory.Count > 0) { var result = resultHistory.FirstOrDefault(); word.SearchResults = JsonConvert.DeserializeObject <List <SearchResult> >(result.Result); word.IsOffensive = word.SearchResults.FirstOrDefault().Meta.Offensive; } } } catch (Exception ex) { throw ex; } return(word); }