コード例 #1
0
        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;
            }
        }
コード例 #2
0
        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);
        }
コード例 #3
0
ファイル: WordService.cs プロジェクト: sam80e/Rsl
        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);
        }