コード例 #1
0
 protected void Page_Init(object sender, EventArgs e)
 {
     _ProductId            = AlwaysConvert.ToInt(Request.QueryString["ProductId"]);
     _Product              = ProductDataSource.Load(_ProductId);
     HiddenProductId.Value = _ProductId.ToString();
     if (_Product == null)
     {
         ProductCaption.Visible = false;
     }
     else
     {
         ProductCaption.Text = string.Format(ProductCaption.Text, _Product.Name);
     }
     if (!Page.IsPostBack)
     {
         //CHECK FOR SEARCH CACE
         SearchCache.SearchCriteria criteria = SearchCache.GetCriteria();
         if ((criteria != null) && (criteria.Arguments.ContainsKey("ShowApproved")))
         {
             ListItem item = ShowApproved.Items.FindByValue(criteria.Arguments["ShowApproved"].ToString());
             if (item != null)
             {
                 ShowApproved.SelectedIndex = ShowApproved.Items.IndexOf(item);
             }
             ReviewGrid.PageIndex             = criteria.PageIndex;
             ReviewGrid.DefaultSortDirection  = criteria.SortDirection;
             ReviewGrid.DefaultSortExpression = criteria.SortExpression;
         }
     }
 }
コード例 #2
0
        public void Update(SearchCache searchCache)
        {
            if (_connection == null)
            {
                return;
            }

            var sql = "UPDATE SearchCache";

            sql += " SET";
            sql += " SearchResultsString = @SearchResultsString";
            sql += " WHERE";
            sql += " SourceText = @SourceText";
            sql += " AND TargetLanguage = @TargetLanguage";
            sql += " AND QueryString = @QueryString";

            var cmdQuery = new SQLiteCommand(sql, _connection);

            cmdQuery.Parameters.Add(new SQLiteParameter("@SourceText", DbType.String));
            cmdQuery.Parameters.Add(new SQLiteParameter("@TargetLanguage", DbType.String));
            cmdQuery.Parameters.Add(new SQLiteParameter("@QueryString", DbType.String));
            cmdQuery.Parameters.Add(new SQLiteParameter("@SearchResultsString", DbType.String));

            cmdQuery.Parameters["@SourceText"].Value          = searchCache.SourceText;
            cmdQuery.Parameters["@TargetLanguage"].Value      = searchCache.TargetLanguage;
            cmdQuery.Parameters["@QueryString"].Value         = searchCache.QueryString;
            cmdQuery.Parameters["@SearchResultsString"].Value = searchCache.SearchResultsString;

            cmdQuery.ExecuteNonQuery();
        }
コード例 #3
0
        public static IEnumerable<int> Search(this TvdbHandler tvdbHandler, IFileSystem fileSystem, DirectoryInfoBase cacheDirectory, string term)
        {
            // Initalise cache if it does not exist.
            if (_searchCache == null)
            {
                _searchCache = new SearchCache(fileSystem, cacheDirectory);
            }

            // If not in cache then search online.
            if(!_searchCache.Contains(term))
            {
                // HACK: TVDB fails on concurrent search, needs a lock to only allow one search.
                lock(_lock)
                {
                    // Search.
                    var results = tvdbHandler.SearchSeries(term);

                    // Return null if no results found.
                    if(results.Count==0)
                    {
                        return null;
                    }

                    // Set cache.
                    _searchCache.Insert(term, results.Select(result => result.Id).ToList());
                }
            }

            // Return series id.
            return _searchCache.Get(term);
        }
コード例 #4
0
        public override IList <ISearchResult> Search(string text, ILanguage source, ILanguage target, int maxResultsCount, SearchMode mode, bool targetRequired)
        {
            _entryModels.Clear();
            _logger.Info("--> Try searching for segment");

            var          bodyModel         = GetApiRequestBodyValues(source, target, text);
            var          modelString       = JsonConvert.SerializeObject(bodyModel);
            var          activeProjectName = Utils.GetCurrentProjectName();
            CacheService cacheService      = null;

            if (!string.IsNullOrEmpty(activeProjectName))
            {
                cacheService = new CacheService(activeProjectName);
            }

            if (cacheService != null)
            {
                _logger.Info("--> Try to get cache results");

                var cachedResults = Task.Run(async() => await cacheService.GetCachedResults(text, target.Name, modelString)).Result;
                if (cachedResults != null && cachedResults.Count > 0)
                {
                    CreateEntryTerms(cachedResults.ToList(), source, GetLanguages());
                    _logger.Info("--> Cache results found");

                    SubscribeToEntriesChangedEvent(text, source, target);
                    return(cachedResults);
                }
            }

            var results = _searchService.GetTerms(modelString);

            if (results != null)
            {
                var termGroups = SortSearchResultsByPriority(text, GetTermResultGroups(results), source);

                results = RemoveDuplicateTerms(termGroups, source, target);
                results = MaxSearchResults(results, maxResultsCount);
                CreateEntryTerms(results, source, GetLanguages());

                // add search to cache db
                var searchResults = new SearchCache
                {
                    QueryString        = modelString,
                    SourceText         = text,
                    TargetLanguageName = target.Name
                };

                if (cacheService != null)
                {
                    _logger.Info("--> Try to add results in db");

                    Task.Run(async() => await cacheService.AddSearchResults(searchResults, results));
                }
            }

            SubscribeToEntriesChangedEvent(text, source, target);

            return(results);
        }
コード例 #5
0
        public override IList <ISearchResult> Search(string text, ILanguage source, ILanguage target, int maxResultsCount, SearchMode mode, bool targetRequired)
        {
            ClearEntries();
            _logger.Info("--> Try searching for segment");

            var jsonBody    = GetApiRequestBodyValues(source, target, text);
            var queryString = JsonConvert.SerializeObject(jsonBody);
            var canConnect  = CacheProvider?.Connect(IATEApplication.ProjectsController?.CurrentProject);

            if (canConnect != null && (bool)canConnect)
            {
                _logger.Info("--> Try to get cache results");

                var cachedResults = CacheProvider.GetCachedResults(text, target.Locale.Name, queryString);
                if (cachedResults != null && cachedResults.Count > 0)
                {
                    CreateEntryTerms(cachedResults.ToList(), source, GetLanguages());

                    _logger.Info("--> Cache results found");
                    OnTermEntriesChanged(text, source, target);

                    return(cachedResults);
                }
            }

            var config  = IATEApplication.ProjectsController?.CurrentProject?.GetTermbaseConfiguration();
            var results = _searchService.GetTerms(queryString, config?.TermRecognitionOptions?.SearchDepth ?? 500);

            if (results != null)
            {
                var termGroups = SortSearchResultsByPriority(text, GetTermResultGroups(results), source);

                results = RemoveDuplicateTerms(termGroups, source, target);
                results = MaxSearchResults(results, maxResultsCount);
                CreateEntryTerms(results, source, GetLanguages());

                // add search to cache db
                var searchCache = new SearchCache
                {
                    SourceText     = text,
                    TargetLanguage = target.Locale.Name,
                    QueryString    = queryString
                };

                if (CacheProvider != null)
                {
                    _logger.Info("--> Try to add results in db");
                    CacheProvider.AddSearchResults(searchCache, results);
                }
            }

            OnTermEntriesChanged(text, source, target);

            return(results);
        }
コード例 #6
0
        public ActionResult Search(string text, string page, string operation)
        {
            if (string.IsNullOrWhiteSpace(text))
            {
                text = Request.QueryString["text"];
            }

            if (string.IsNullOrWhiteSpace(page) || page == "0")
            {
                page = Request.QueryString["page"];
            }

            if (string.IsNullOrWhiteSpace(text))
            {
                return(new EmptyResult());
            }
            int req_page;

            try
            {
                req_page = Convert.ToInt32(page);
            }
            catch (Exception)
            {
                req_page = 0;
            }

            SearchCache cache;

            if (globalCache.ContainsKey(text))
            {
                cache = globalCache[text];
            }
            else
            {
                cache = new SearchCache(text);
                globalCache.TryAdd(text, cache);
            }
            var list = cache.GetPage(req_page);

            if (req_page > 0)
            {
                ViewBag.Page       = req_page;
                ViewBag.Text       = text;
                ViewBag.Processing = cache.IsProcessing;
                ViewBag.LastPage   = cache.LastPage;
                if (Request.QueryString["operation"] != null || operation != null)
                {
                    return(PartialView("AjaxPageProductsView", list));
                }
                return(PartialView("PageProductsView", list));
            }
            return(PartialView("AllProductsView", list));
        }
コード例 #7
0
        private async void Search(string searchText)
        {
            Analytics.TrackEvent("Search: " + searchText);

            try
            {
                _giphyServiceObj = FreshIOC.Container.Resolve <GiphyService>();

                if (TrendingImages != null)
                {
                    TrendingImages.Clear();
                    Settings.Offset = 0;
                }

                SearchCacheItem existingSearchCacheItem = SearchCache.FirstOrDefault((obj) => obj.SearchString == searchText);

                if (existingSearchCacheItem == null)
                {
                    _searchCacheServiceObj.InsertSearchItem(new SearchCacheItem(searchText));
                }
                else
                {
                    // Update the search time so it appears first in the list.
                    existingSearchCacheItem.TimeSearched = DateTime.Now;
                    _searchCacheServiceObj.UpdateSearchItem(existingSearchCacheItem);
                }

                Giphy = await _giphyServiceObj.SearchGifs(searchText);

                if (Giphy != null)
                {
                    List <GifDataItem> gifDataItems = CreateGifDataItemList(Giphy.Data.ToList());
                    gifDataItems.ForEach((gifDataItem) => { TrendingImages.Add(gifDataItem); });

                    //foreach (Datum datum in Giphy.Data)
                    //{
                    //    TrendingImages.Add(datum);
                    //}
                }

                IsCancelButtonVisible        = false;
                IsTrendingImagesPanelVisible = true;
            }
            catch (Exception exception)
            {
                MainThread.BeginInvokeOnMainThread
                (
                    () =>
                {
                    CoreMethods.DisplayAlert("Uh Oh", "Something bad happened: \n" + exception.Message, "Ok");
                }
                );
            }
        }
コード例 #8
0
        public SearchCache GetCache(string token)
        {
            SearchCache cache = caches[token];

            var result = new SearchCache
            {
                Value    = cache.Value,
                LifeTime = cache.LifeTime
            };

            return(result);
        }
コード例 #9
0
        public string AddCache(IEnumerable <IFound> cache)
        {
            string token = Randomizer.GetString(TOKEN_LENGTH);

            var searchCache = new SearchCache
            {
                Value    = cache,
                LifeTime = 0
            };

            caches.TryAdd(token, searchCache);

            return(token);
        }
コード例 #10
0
        public List <SearchCache> Get()
        {
            var searchCaches = new List <SearchCache>();

            var sql      = "SELECT * FROM SearchCache";
            var cmdQuery = new SQLiteCommand(sql, _connection);

            var rdrSelect = cmdQuery.ExecuteReader();

            try
            {
                if (rdrSelect.HasRows)
                {
                    while (rdrSelect.Read())
                    {
                        var searchCache =
                            new SearchCache
                        {
                            SourceText          = rdrSelect["SourceText"].ToString(),
                            TargetLanguage      = rdrSelect["TargetLanguage"].ToString(),
                            QueryString         = rdrSelect["QueryString"].ToString(),
                            SearchResultsString = rdrSelect["SearchResultsString"].ToString()
                        };

                        searchCaches.Add(searchCache);
                    }
                }
            }
            catch (Exception ex)
            {
                _logger.Error($"{ex.Message}\n{ex.StackTrace}");
                throw;
            }
            finally
            {
                if (rdrSelect != null)
                {
                    if (!rdrSelect.IsClosed)
                    {
                        rdrSelect.Close();
                    }
                }
            }

            return(searchCaches);
        }
コード例 #11
0
        public void AddSearchResults(SearchCache searchCache, List <ISearchResult> searchResults)
        {
            if (searchResults == null)
            {
                return;
            }

            var serializedSearchResult = SerializeSearchResult(searchResults);

            if (string.IsNullOrEmpty(serializedSearchResult))
            {
                return;
            }

            searchCache.SearchResultsString = serializedSearchResult;

            _databaseProvider?.Insert(searchCache);
        }
コード例 #12
0
        internal async Task <bool> RefreshSearchCache()
        {
            if (SearchCache != null)
            {
                SearchCache.Clear();

                List <SearchCacheItem> searchCache = await _searchCacheServiceObj.GetSearchCache();

                List <SearchCacheItem> orderedSearchCache = searchCache.OrderByDescending(x => x.TimeSearched).ToList <SearchCacheItem>();

                foreach (SearchCacheItem searchItem in orderedSearchCache)
                {
                    SearchCache.Add(searchItem);
                }

                return(true);
            }

            return(false);
        }
コード例 #13
0
        public async Task AddSearchResults(SearchCache searchCache, List <ISearchResult> iateSearchResults)
        {
            if (iateSearchResults == null)
            {
                return;
            }

            var serializedSearchResult = SerializeSearchResult(iateSearchResults);

            if (string.IsNullOrEmpty(serializedSearchResult))
            {
                return;
            }

            searchCache.SearchResultsString = serializedSearchResult;
            _dbContext?.SearchCaches.Add(searchCache);
            if (_dbContext != null)
            {
                await _dbContext.SaveChangesAsync();
            }
        }
コード例 #14
0
        public int Insert(SearchCache searchCache)
        {
            if (_connection == null)
            {
                return(-1);
            }

            var sql = "INSERT INTO SearchCache";

            sql += " (";
            sql += " SourceText";
            sql += ", TargetLanguage";
            sql += ", QueryString";
            sql += ", SearchResultsString";
            sql += " ) VALUES (";
            sql += " @SourceText";
            sql += ", @TargetLanguage";
            sql += ", @QueryString";
            sql += ", @SearchResultsString";
            sql += " ); SELECT last_insert_rowid();";

            var cmdQuery = new SQLiteCommand(sql, _connection);

            cmdQuery.Parameters.Add(new SQLiteParameter("@SourceText", DbType.String));
            cmdQuery.Parameters.Add(new SQLiteParameter("@TargetLanguage", DbType.String));
            cmdQuery.Parameters.Add(new SQLiteParameter("@QueryString", DbType.String));
            cmdQuery.Parameters.Add(new SQLiteParameter("@SearchResultsString", DbType.String));

            cmdQuery.Parameters["@SourceText"].Value          = searchCache.SourceText;
            cmdQuery.Parameters["@TargetLanguage"].Value      = searchCache.TargetLanguage;
            cmdQuery.Parameters["@QueryString"].Value         = searchCache.QueryString;
            cmdQuery.Parameters["@SearchResultsString"].Value = searchCache.SearchResultsString;

            var id = Convert.ToInt32(cmdQuery.ExecuteScalar());

            return(id);
        }
コード例 #15
0
        protected void ReviewGrid_DataBound(object sender, EventArgs e)
        {
            GridView grid = (GridView)sender;

            if (grid.Rows.Count > 0)
            {
                foreach (GridViewRow gvr in (grid.Rows))
                {
                    CheckBox cb = (CheckBox)gvr.FindControl("Selected");
                    ScriptManager.RegisterArrayDeclaration(grid, "CheckBoxIDs", String.Concat("'", cb.ClientID, "'"));
                }
            }
            else
            {
                ReviewActionPanel.Visible = false;
            }
            //CACHE THE SEARCH ARGUMENTS FOR NEXT VISIT
            SearchCache.SearchCriteria criteria = new SearchCache.SearchCriteria();
            criteria.Arguments.Add("ShowApproved", ShowApproved.SelectedValue);
            criteria.PageIndex      = grid.PageIndex;
            criteria.SortDirection  = ReviewGrid.SortDirection;
            criteria.SortExpression = ReviewGrid.SortExpression;
            SearchCache.SetCriteria(criteria);
        }
コード例 #16
0
ファイル: Searches.cs プロジェクト: xiongeee/BBX
        public static DataTable GetSearchCacheList(int posttableid, int searchid, int pagesize, int pageindex, out int topiccount, SearchType searchType)
        {
            topiccount = 0;
            //DataTable searchCache = Discuz.Data.Searches.GetSearchCache(searchid);
            var searchCache = SearchCache.FindByID(searchid);

            if (searchCache == null)
            {
                return(new DataTable());
            }

            //string input = searchCache.Rows[0][0].ToString();
            var input = searchCache.Keywords;

            switch (searchType)
            {
            //case SearchType.AlbumTitle:
            //{
            //    Match match = Searches.regexAlbum.Match(input);
            //    if (match.Success)
            //    {
            //        string currentPageTids = Searches.GetCurrentPageTids(match.Groups[1].Value, out topiccount, pagesize, pageindex);
            //        if (Utils.StrIsNullOrEmpty(currentPageTids))
            //        {
            //            return new DataTable();
            //        }
            //        //if (AlbumPluginProvider.GetInstance() != null)
            //        //{
            //        //    return AlbumPluginProvider.GetInstance().GetResult(pagesize, currentPageTids);
            //        //}
            //        return new DataTable();
            //    }
            //    break;
            //}
            //case SearchType.SpacePostTitle:
            //{
            //    Match match = Searches.regexSpacePost.Match(input);
            //    if (match.Success)
            //    {
            //        string currentPageTids2 = Searches.GetCurrentPageTids(match.Groups[1].Value, out topiccount, pagesize, pageindex);
            //        if (Utils.StrIsNullOrEmpty(currentPageTids2))
            //        {
            //            return new DataTable();
            //        }
            //        //if (SpacePluginProvider.GetInstance() != null)
            //        //{
            //        //    return SpacePluginProvider.GetInstance().GetResult(pagesize, currentPageTids2);
            //        //}
            //        return new DataTable();
            //    }
            //    break;
            //}
            default:
            {
                var match = Searches.regexForumTopics.Match(input);
                if (match.Success)
                {
                    string currentPageTids3 = Searches.GetCurrentPageTids(match.Groups[1].Value, out topiccount, pagesize, pageindex);
                    if (Utils.StrIsNullOrEmpty(currentPageTids3))
                    {
                        return(new DataTable());
                    }

                    if (searchType == SearchType.DigestTopic)
                    {
                        return(Discuz.Data.Searches.GetSearchDigestTopicsList(pagesize, currentPageTids3));
                    }

                    return(Discuz.Data.Searches.GetSearchTopicsList(pagesize, currentPageTids3));
                }
                break;
            }
            }
            return(new DataTable());
        }
コード例 #17
0
        public SearchCache Get(string sourceText, string targetLanguage, string queryString)
        {
            if (_connection == null)
            {
                return(null);
            }

            var sql = "SELECT * FROM SearchCache";

            sql += " WHERE";
            sql += " SourceText = @SourceText";
            sql += " AND TargetLanguage = @TargetLanguage";
            sql += " AND QueryString = @QueryString";

            var cmdQuery = new SQLiteCommand(sql, _connection);

            cmdQuery.Parameters.Add(new SQLiteParameter("@SourceText", DbType.String));
            cmdQuery.Parameters.Add(new SQLiteParameter("@TargetLanguage", DbType.String));
            cmdQuery.Parameters.Add(new SQLiteParameter("@QueryString", DbType.String));

            cmdQuery.Parameters["@SourceText"].Value     = sourceText;
            cmdQuery.Parameters["@TargetLanguage"].Value = targetLanguage;
            cmdQuery.Parameters["@QueryString"].Value    = queryString;

            var rdrSelect = cmdQuery.ExecuteReader();

            try
            {
                if (rdrSelect.HasRows)
                {
                    rdrSelect.Read();

                    var searchCache =
                        new SearchCache
                    {
                        Id                  = Convert.ToInt32(rdrSelect["Id"]),
                        SourceText          = sourceText,
                        TargetLanguage      = targetLanguage,
                        QueryString         = queryString,
                        SearchResultsString = rdrSelect["SearchResultsString"].ToString()
                    };

                    return(searchCache);
                }
            }
            catch (Exception ex)
            {
                _logger.Error($"{ex.Message}\n{ex.StackTrace}");
                throw;
            }
            finally
            {
                if (rdrSelect != null)
                {
                    if (!rdrSelect.IsClosed)
                    {
                        rdrSelect.Close();
                    }
                }
            }

            return(null);
        }
コード例 #18
0
ファイル: search.cs プロジェクト: xiongeee/BBX
        protected override void ShowPage()
        {
            this.pagetitle = "搜索";
            this.GetSearchType();
            if (this.searchsubmit == 0 && !this.ispost)
            {
                if (!UserAuthority.Search(this.usergroupinfo, ref this.msg))
                {
                    base.AddErrLine(this.msg);
                    return;
                }
                if (this.searchid <= 0)
                {
                    return;
                }

                if (this.searchType == SearchType.Error)
                {
                    base.AddErrLine("非法的参数信息");
                    return;
                }
                switch (this.searchType)
                {
                case SearchType.ByPoster:
                    this.topiclist        = SearchCache.GetSearchCacheList(this.searchid, 16, this.topicpageid, out this.topiccount, SearchType.TopicTitle);
                    this.topicpageid      = this.CalculateCurrentPage(this.topiccount, this.topicpageid, out this.topicpagecount);
                    this.topicpagenumbers = ((this.topicpagecount > 1) ? Utils.GetPageNumbers(this.topicpageid, this.topicpagecount, "search.aspx?type=" + this.type + "&searchid=" + this.searchid + "&keyword=" + this.keyword + "&poster=" + this.poster, 8, "topicpage", "#1") : "");
                    return;
                }
                this.topiclist = SearchCache.GetSearchCacheList(this.searchid, 16, this.pageid, out this.topiccount, this.searchType);
                if (this.topiccount == 0)
                {
                    base.AddErrLine("不存在的searchid");
                    return;
                }
                this.CalculateCurrentPage();
                this.pagenumbers = ((this.pagecount > 1) ? Utils.GetPageNumbers(this.pageid, this.pagecount, "search.aspx?type=" + this.type + "&searchid=" + this.searchid + "&keyword=" + this.keyword + "&poster=" + this.poster, 8) : "");
                return;
            }
            else
            {
                if (!UserAuthority.Search(this.userid, this.lastsearchtime, this.useradminid, this.usergroupinfo, ref this.msg))
                {
                    base.AddErrLine(this.msg);
                    return;
                }
                if (this.searchType == SearchType.Error)
                {
                    base.AddErrLine("非法的参数信息");
                    return;
                }
                this.searchpost = true;
                string searchforumid = DNTRequest.GetString("searchforumid").Trim();
                int    posterid      = this.CheckSearchInfo(searchforumid);
                if (base.IsErr())
                {
                    return;
                }

                this.searchid = SearchCache.Search(this.userid, this.usergroupid, this.keyword, posterid, this.searchType, searchforumid, DNTRequest.GetInt("searchtime", 0), DNTRequest.GetInt("searchtimetype", 0), DNTRequest.GetInt("resultorder", 0), DNTRequest.GetInt("resultordertype", 0));
                if (this.searchid > 0)
                {
                    Response.Redirect(this.forumpath + "search.aspx?type=" + this.type + "&searchid=" + this.searchid + "&keyword=" + this.keyword + "&poster=" + this.poster, false);
                    return;
                }
                base.AddErrLine("抱歉, 没有搜索到符合要求的记录");
                return;
            }
        }
コード例 #19
0
        public List <Item> GetList(BadBeeFilter filter, bool brand, bool serie, bool model, bool drum, bool height, bool width,
                                   bool thick, bool system, bool rivet, bool wva, bool wvad, bool bb, bool year)
        {
            if (string.IsNullOrEmpty(GlobalVars.SearchCache.SearchKey) == false && GlobalVars.SearchCache.SearchKey.Equals(filter.SearchKey))
            {
                Debug.WriteLine(DateTime.Now + " Cache search with key " + GlobalVars.SearchCache.SearchKey);

                return(GlobalVars.SearchCache.GetListResult);
            }
            else
            {
                var items = db.Item.Include("Model").Include("Model.Serie").Include("Model.Serie.Brand").Include("Model.Year").Include("Model.Year.DateFromFK")
                            .Include("Model.Year.DateToFK").Include("BadBee").Include("BadBee.Wva").Include("BadBee.Systems").Include("BadBee.Dimension")
                            .Include("BadBee.Dimension.Width").Include("BadBee.Dimension.Height").Include("BadBee.Dimension.Thickness").AsQueryable();

                if (!string.IsNullOrEmpty(filter.Models) && !model)
                {
                    items = items.Where(q => filter.ModelsList.Contains(q.Model.ModelId));
                }
                if (!string.IsNullOrEmpty(filter.Series) && !serie)
                {
                    items = items.Where(q => filter.SeriesList.Contains(q.Model.Serie.SerieId));
                }
                if (!string.IsNullOrEmpty(filter.Brands) && !brand)
                {
                    items = items.Where(q => filter.BrandsList.Contains(q.Model.Serie.Brand.BrandId));
                }
                if (!string.IsNullOrEmpty(filter.Heights) && !height)
                {
                    items = items.Where(q => filter.HeightsList.Contains(q.BadBee.Dimension.Height.HeightId));
                }
                if (!string.IsNullOrEmpty(filter.Widths) && !width)
                {
                    items = items.Where(q => filter.WidthsList.Contains(q.BadBee.Dimension.Width.WidthId));
                }
                if (!string.IsNullOrEmpty(filter.Thicknesses) && !thick)
                {
                    items = items.Where(q => filter.ThicknessesList.Contains(q.BadBee.Dimension.Thickness.ThicknessId));
                }
                if (!string.IsNullOrEmpty(filter.Systems) && !system)
                {
                    items = items.Where(q => filter.SystemsList.Contains(q.BadBee.Systems.SystemId));
                }
                if (!string.IsNullOrEmpty(filter.Wvas) && !wva)
                {
                    items = items.Where(q => filter.WvasList.Contains(q.BadBee.Wva.WvaId));
                }
                if (!string.IsNullOrEmpty(filter.BadBeeNumbers) && !bb)
                {
                    items = items.Where(q => filter.BadBeeNumbersList.Contains(q.BadBeeId));
                }
                if (!string.IsNullOrEmpty(filter.DateYears) && !year)
                {
                    items = items.Where(q => filter.DateYearsList.Contains(q.Model.Year.DateFromFK.DateId) || filter.DateYearsList.Contains(q.Model.Year.DateToFK.DateId));
                }

                var searchCache = new SearchCache();
                searchCache.GetListResult = items.ToList();
                searchCache.SearchKey     = filter.SearchKey;

                GlobalVars.SearchCache = searchCache;

                Debug.WriteLine(DateTime.Now + " New search with key " + GlobalVars.SearchCache.SearchKey);

                return(GlobalVars.SearchCache.GetListResult);
            }
        }
コード例 #20
0
ファイル: TSHelper.cs プロジェクト: Fox742/text_search_helper
 /// <summary>
 /// Сбросить поисковый кеш (то есть "забыть" последние позиции вхождений всех строк, когда либо найденных)
 /// </summary>
 public void resetAllSearch()
 {
     checkDisposed();
     _searchCache = new SearchCache();
 }