Exemplo n.º 1
0
        public void LucQueryTemplateReplacer_1()
        {
            var text     = "@@CurrentUser@@";
            var expected = User.Current.Id.ToString();

            Assert.AreEqual(expected, LucQueryTemplateReplacer.ReplaceTemplates(text));

            text     = " @@CurrentUser@@ ";
            expected = string.Format(" {0} ", User.Current.Id);
            Assert.AreEqual(expected, LucQueryTemplateReplacer.ReplaceTemplates(text));
        }
Exemplo n.º 2
0
        public void LucQueryTemplateReplacer_3()
        {
            //CreatePortalContext();

            var text     = "ABC @@CurrentUser@@ DEF";
            var expected = string.Format("ABC {0} DEF", User.Current.Id);

            Assert.AreEqual(expected, LucQueryTemplateReplacer.ReplaceTemplates(text));

            text     = "ABC @@CurrentUser@@ DEF @@CurrentUser.Path@@ GHI";
            expected = string.Format("ABC {0} DEF {1} GHI", User.Current.Id, User.Current.Path);
            Assert.AreEqual(expected, LucQueryTemplateReplacer.ReplaceTemplates(text));
        }
Exemplo n.º 3
0
        public void LucQueryTemplateReplacer_2()
        {
            var text = "@@CurrentUser.Path@@";

            Assert.AreEqual(User.Current.Path, LucQueryTemplateReplacer.ReplaceTemplates(text));

            //text = "@@CurrentSite.Path@@";
            //Assert.AreEqual(Site.Current.Path, LucQueryTemplateReplacer.ReplaceTemplates(text));

            text = "@@CurrentDate@@";
            var expected = "'" + DateTime.Today.ToString("yyyy-MM-dd") + "'";

            Assert.AreEqual(expected, LucQueryTemplateReplacer.ReplaceTemplates(text));
        }
Exemplo n.º 4
0
        public void LucQueryTemplateReplacer_2()
        {
            var text = "@@CurrentUser.Path@@";

            Assert.AreEqual(User.Current.Path, LucQueryTemplateReplacer.ReplaceTemplates(text));

            //text = "@@CurrentSite.Path@@";
            //Assert.AreEqual(Site.Current.Path, LucQueryTemplateReplacer.ReplaceTemplates(text));

            text = "@@CurrentDate@@";
            var expected = DateTime.Today.ToString(CultureInfo.InvariantCulture.DateTimeFormat.ShortDatePattern);

            Assert.AreEqual(expected, LucQueryTemplateReplacer.ReplaceTemplates(text));
        }
Exemplo n.º 5
0
        public static LucQuery Parse(string luceneQueryText)
        {
            var result = new LucQuery();

            result.TraceInfo.InputText = luceneQueryText;

            result.TraceInfo.BeginParsingTime();
            var   parser = new SnLucParser();
            Query query;

            try
            {
                var replacedText = LucQueryTemplateReplacer.ReplaceTemplates(luceneQueryText);
                query = parser.Parse(replacedText);
            }
            finally
            {
                result.TraceInfo.FinishParsingTime();
            }
            //Run EmptyTermVisitor if the parser created empty query term.
            if (parser.ParseEmptyQuery)
            {
                var visitor = new EmptyTermVisitor();
                result.Query = visitor.Visit(query);
            }
            else
            {
                result.Query = query;
            }

            var sortFields = new List <SortField>();

            foreach (var control in parser.Controls)
            {
                switch (control.Name)
                {
                case SnLucLexer.Keywords.Select:
                    result.Projection = control.Value;
                    break;

                case SnLucLexer.Keywords.Top:
                    result.Top = Convert.ToInt32(control.Value);
                    break;

                case SnLucLexer.Keywords.Skip:
                    result.Skip = Convert.ToInt32(control.Value);
                    break;

                case SnLucLexer.Keywords.Sort:
                    sortFields.Add(CreateSortField(control.Value, false));
                    break;

                case SnLucLexer.Keywords.ReverseSort:
                    sortFields.Add(CreateSortField(control.Value, true));
                    break;

                case SnLucLexer.Keywords.Autofilters:
                    result.EnableAutofilters = control.Value == SnLucLexer.Keywords.On ? FilterStatus.Enabled : FilterStatus.Disabled;
                    break;

                case SnLucLexer.Keywords.Lifespan:
                    result.EnableLifespanFilter = control.Value == SnLucLexer.Keywords.On ? FilterStatus.Enabled : FilterStatus.Disabled;
                    break;

                case SnLucLexer.Keywords.CountOnly:
                    result.CountOnly = true;
                    break;
                }
            }
            result.SortFields = sortFields.ToArray();
            result.FieldLevel = parser.FieldLevel;
            return(result);
        }