protected virtual void AddDecorations(BooleanQuery result)
 {
     Assert.ArgumentNotNull(result, "result");
     global::Sitecore.Security.Accounts.User user = this.User;
     if (user != null)
     {
         result.Add(new TermQuery(new Term(BuiltinFields.Creator, user.Name)), Occur.SHOULD);
         result.Add(new TermQuery(new Term(BuiltinFields.Editor, user.Name)), Occur.SHOULD);
     }
     global::Sitecore.Data.Items.Item item = this.Item;
     if (item != null)
     {
         result.Add(new TermQuery(new Term(BuiltinFields.Path, ShortID.Encode(item.ID).ToLowerInvariant())), Occur.MUST);
         result.Add(new TermQuery(new Term(BuiltinFields.Database, item.Database.Name.ToLowerInvariant())), Occur.MUST);
         if (this.ContentLanguages.Count == 0)
         {
             result.Add(new TermQuery(new Term(BuiltinFields.Language, item.Language.ToString().ToLowerInvariant())), Occur.MUST);
         }
     }
     if (this.ContentLanguages.Count > 0)
     {
         var langQuery = new BooleanQuery(true);
         this.ContentLanguages.ForEach(lang => langQuery.Add(new TermQuery(new Term(BuiltinFields.Language, lang.ToString().ToLowerInvariant())), Occur.SHOULD));
         result.Add(langQuery, Occur.MUST);
     }
     if (!this.IgnoreContentEditorOptions)
     {
         if (!UserOptions.View.ShowHiddenItems)
         {
             result.Add(new TermQuery(new Term(BuiltinFields.Hidden, "1")), Occur.MUST_NOT);
         }
         if (!UserOptions.View.ShowEntireTree && (item != null))
         {
             global::Sitecore.Data.Items.Item item2 = item.Database.GetItem(RootSections.GetSection(item));
             if (item2 != null)
             {
                 result.Add(new TermQuery(new Term(BuiltinFields.Path, ShortID.Encode(item2.ID).ToLowerInvariant())), Occur.MUST);
             }
         }
     }
     if (TemplateID != default(Guid))
     {
         result.Add(new TermQuery(new Term(BuiltinFields.Template, new ShortID(TemplateID).ToString().ToLowerInvariant())), Occur.MUST);
     }
 }
 public FixedSearchContext(global::Sitecore.Security.Accounts.User user, global::Sitecore.Data.Items.Item item)
 {
     this._user = user;
     this._item = item;
 }
 public FixedSearchContext(global::Sitecore.Security.Accounts.User user)
 {
     this._user = user;
 }