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)); }
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)); }
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)); }
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)); }
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); }