protected override object GetModel() { SmartFolder sf = null; sf = Node.Load <SmartFolder>("/Root/System/RuntimeQuery"); if (sf == null) { using (new SystemAccount()) { var systemFolder = Node.LoadNode("/root/system"); sf = new SmartFolder(systemFolder) { Name = "RuntimeQuery" }; sf.Save(); } } var c = ContentRepository.Content.Create(sf); sf.Query = ReplaceTemplates(this.QueryString); var oldc = base.GetModel() as ContentRepository.Content; if (oldc != null) { c.ChildrenQueryFilter = oldc.ChildrenQueryFilter; c.ChildrenQuerySettings = oldc.ChildrenQuerySettings; } return(c); }
protected override object GetModel() { var sf = Node.Load <SmartFolder>("/Root/System/RuntimeQuery"); if (sf == null) { using (new SystemAccount()) { var systemFolder = Node.LoadNode("/root/system"); sf = new SmartFolder(systemFolder) { Name = "RuntimeQuery" }; sf.Save(); } } var model = Content.Create(sf); if (!this.AllowEmptySearch && SearchTextIsTooGeneric(this.QueryString)) { this.ErrorMessage = "Please give a more specific search text"; return(model); } sf.Query = ReplaceTemplates(this.QueryString); var baseModel = base.GetModel() as Content; if (baseModel != null) { model.ChildrenQueryFilter = baseModel.ChildrenQueryFilter; model.ChildrenQuerySettings = baseModel.ChildrenQuerySettings; if (FilterByContext) { var ctx = GetContextNode(); if (ctx != null) { //add filter: we search only under the current context var excapedPath = ctx.Path.Replace("(", "\\(").Replace(")", "\\)"); sf.Query = ContentQuery.AddClause(sf.Query, string.Format("InTree:\"{0}\"", excapedPath), ChainOperator.And); } } } ResultModel = model; return(model); }
//====================================================================== Model protected override object GetModel() { var contextNode = GetContextNode(); if (contextNode == null) { return(null); } var smartFolder = Node.Load <SmartFolder>("/Root/System/RuntimeQuery"); if (smartFolder == null) { using (new SystemAccount()) { var systemFolder = Node.LoadNode("/Root/System"); smartFolder = new SmartFolder(systemFolder) { Name = "RuntimeQuery" }; smartFolder.Save(); } } var content = Content.Create(smartFolder); smartFolder.Query = string.Format("+InTree:\"{0}\" +TypeIs:Workspace -TypeIs:(Blog Wiki)", contextNode.Path); var baseModel = base.GetModel() as Content; if (baseModel != null) { content.ChildrenQueryFilter = baseModel.ChildrenQueryFilter; content.ChildrenQuerySettings = baseModel.ChildrenQuerySettings; } return(content); }