Ejemplo n.º 1
0
        public void TestEscapeQueryString()
        {
            string inputString = "\"query:Test*\"*";
            string testString  = "\\\"query\\:Test*\\\"*";
            string result      = SolrService.EscapeQueryString(inputString);

            Assert.AreEqual(testString, result);
        }
Ejemplo n.º 2
0
        public override object GetContent(object model)
        {
            HttpContext context = HttpContext.Current;

            if (string.IsNullOrEmpty(SearchResultTemplate))
            {
                SearchResultTemplate = "SearchResult";
            }

            if (context != null)
            {
                string query = context.Request.QueryString[SimpleSearch.QUERY_PARAM];
                Page         = ParseInt(context.Request.QueryString[SearchResults.PAGE_PARAM], 1, 1);
                TotalPerPage = ParseInt(context.Request.QueryString[SearchResults.PERPAGE_PARAM], 10, 1);

                if (!string.IsNullOrEmpty(query))
                {
                    query = string.Format("*{0}*", SolrService.EscapeQueryString(query.Trim()));
                    CatfishDbContext db = new CatfishDbContext();
                    EntityService    es = new EntityService(db);

                    var results = es.GetEntitiesTextSearch(query, new string[] { ViewHelper.GetActiveLanguage().TwoLetterISOLanguageName });
                    Total      = results.Count();
                    TotalPages = (int)Math.Ceiling((float)Total / (float)TotalPerPage);

                    if (Page < 1)
                    {
                        Page = 1;
                    }
                    else if (Page > TotalPages)
                    {
                        Page = TotalPages + 1;
                    }

                    int startValue = (Page - 1) * TotalPerPage;

                    Results = results.OrderBy(m => m.Id).Skip(startValue).Take(TotalPerPage).ToArray();
                }
            }

            return(base.GetContent(model));
        }