/// <summary> /// Perform a particular action. /// </summary> /// <param name="context">The context.</param> /// <param name="action">The action.</param> /// <param name="item">The item to perform the action on.</param> /// <param name="data">The additional data/parameters needed to perform the Action.</param> /// <returns>Optionally return a JToken with a result value</returns> /// <exception cref="System.NotImplementedException"></exception> public virtual JToken Action(DataSourceContext context, string action, IDataItem item, JToken data) { if (action == "FormSubmit") { OpenContentController ctrl = new OpenContentController(context.PortalId); //var indexConfig = OpenContentUtils.GetIndexConfig(new FolderUri(context.TemplateFolder), "Submissions"); var content = new OpenContentInfo() { ModuleId = GetModuleId(context), Collection = "Submissions", Title = item.Data["Title"] == null ? "Form" : item.Data["Title"].ToString(), Json = data["form"].ToString(), CreatedByUserId = context.UserId, CreatedOnDate = DateTime.Now, LastModifiedByUserId = context.UserId, LastModifiedOnDate = DateTime.Now }; ctrl.AddContent(content); //Index the content item //if (context.Index) //{ // LuceneController.Instance.Add(content, indexConfig); // LuceneController.Instance.Commit(); //} return(FormUtils.FormSubmit(data as JObject, item.Data.DeepClone() as JObject)); } return(null); }
public virtual IDataItems GetAll(DataSourceContext context, Select selectQuery) { if (selectQuery == null) { return(GetAll(context)); } SelectQueryDefinition def = BuildQuery(context, selectQuery); OpenContentController ctrl = new OpenContentController(context.PortalId); SearchResults docs = LuceneController.Instance.Search(OpenContentInfo.GetScope(GetModuleId(context), context.Collection), def.Filter, def.Query, def.Sort, def.PageSize, def.PageIndex); int total = docs.TotalResults; var dataList = new List <IDataItem>(); foreach (string item in docs.ids) { var content = ctrl.GetContent(int.Parse(item)); if (content != null) { dataList.Add(CreateDefaultDataItem(content)); } else { App.Services.Logger.Debug($"OpenContentDataSource.GetAll() ContentItem not found [{item}]"); } } return(new DefaultDataItems() { Items = dataList, Total = total, DebugInfo = def.Filter + " - " + def.Query + " - " + def.Sort }); }
public virtual void Add(DataSourceContext context, JToken data) { OpenContentController ctrl = new OpenContentController(context.PortalId); var content = new OpenContentInfo() { ModuleId = GetModuleId(context), Collection = context.Collection, Title = data["Title"]?.ToString() ?? "", Json = data.ToString(), CreatedByUserId = context.UserId, CreatedOnDate = DateTime.Now, LastModifiedByUserId = context.UserId, LastModifiedOnDate = DateTime.Now }; ctrl.AddContent(content); context.Id = content.Id; //Index the content item if (context.Index) { var indexConfig = OpenContentUtils.GetIndexConfig(new FolderUri(context.TemplateFolder), context.Collection); LuceneController.Instance.Add(content, indexConfig); LuceneController.Instance.Commit(); } ClearUrlRewriterCache(context); Notify(context, data, "add"); }
private void IndexModuleData(LuceneController lc, int moduleId, OpenContentSettings settings) { bool index = false; if (settings.TemplateAvailable) { index = settings.Manifest.Index; } FieldConfig indexConfig = null; if (index) { indexConfig = OpenContentUtils.GetIndexConfig(settings.Template); } if (settings.IsOtherModule) { moduleId = settings.ModuleId; } lc.Store.Delete(new TermQuery(new Term("$type", OpenContentInfo.GetScope(moduleId, settings.Template.Collection)))); OpenContentController occ = new OpenContentController(); foreach (var item in occ.GetContents(moduleId, settings.Template.Collection)) { lc.Add(item, indexConfig); } }
public void Add(OpenContentInfo data, FieldConfig config) { if (null == data) { throw new ArgumentNullException("data"); } Store.Add(JsonMappingUtils.JsonToDocument(data.ModuleId.ToString(), data.ContentId.ToString(), data.CreatedByUserId.ToString(), data.CreatedOnDate, data.JsonAsJToken, data.Json, config)); }
public void Reindex(DataSourceContext context) { string scope = OpenContentInfo.GetScope(context.ModuleId, context.Collection); var indexConfig = OpenContentUtils.GetIndexConfig(new FolderUri(context.TemplateFolder), context.Collection); //todo index is being build from schema & options. But they should be provided by the provider, not directly from the files OpenContentController occ = new OpenContentController(context.PortalId); LuceneController.Instance.ReIndexModuleData(occ.GetContents(context.ModuleId, context.Collection), indexConfig, scope); }
public void Update(OpenContentInfo data, FieldConfig config) { if (null == data) { throw new ArgumentNullException("data"); } Delete(data); Add(data, config); }
/// <summary> /// Deletes the matching objects in the IndexWriter. /// </summary> /// <param name="data"></param> public void Delete(OpenContentInfo data) { if (null == data) { throw new ArgumentNullException("data"); } var selection = new TermQuery(new Term(JsonMappingUtils.FieldId, data.ContentId.ToString())); Query deleteQuery = new FilteredQuery(selection, JsonMappingUtils.GetTypeFilter(data.ModuleId.ToString())); Store.Delete(deleteQuery); }
private static DefaultDataItem CreateDefaultDataItem(OpenContentInfo content) { return(new DefaultDataItem { Id = content.ContentId.ToString(), Title = content.Title, Data = content.JsonAsJToken, CreatedByUserId = content.CreatedByUserId, LastModifiedByUserId = content.LastModifiedByUserId, LastModifiedOnDate = content.LastModifiedOnDate, CreatedOnDate = content.CreatedOnDate, Item = content }); }
public virtual IDataItem Get(DataSourceContext context, string id) { OpenContentController ctrl = new OpenContentController(context.PortalId); OpenContentInfo content = null; if (!string.IsNullOrEmpty(id) && id != "-1") { /* * if (LogContext.IsLogActive) * { * LogContext.Log(context.ActiveModuleId, "Get DataItem", "Request", string.Format("{0}.Get() with id {1}", Name, id)); * } */ content = ctrl.GetContent(GetModuleId(context), context.Collection, id); } else { /* * if (LogContext.IsLogActive) * { * LogContext.Log(context.ActiveModuleId, "Get DataItem", "Request", string.Format("{0}.Get() with id {1}. Returning first item of module.", Name, id)); * } */ content = ctrl.GetFirstContent(GetModuleId(context)); // single item } if (content == null) { App.Services.Logger.Warn($"Item not shown because no content item found. Id [{id}]. Context TabId: [{GetTabId(context)}], ModuleId: [{GetModuleId(context)}]"); LogContext.Log(context.ActiveModuleId, "Get DataItem", "Result", "not item found with id " + id); } else if (content.ModuleId == GetModuleId(context) && content.Collection == context.Collection) { var dataItem = CreateDefaultDataItem(content); if (LogContext.IsLogActive) { LogContext.Log(context.ActiveModuleId, "Get DataItem", "Result", dataItem.Data); } return(dataItem); } else { if (LogContext.IsLogActive) { LogContext.Log(context.ActiveModuleId, "Get DataItem", "Result", $"no item returned as incompatible module ids {content.ModuleId}-{GetModuleId(context)}"); } } return(null); }
private static DefaultDataItem CreateDefaultDataItem(OpenContentInfo content) { return(new DefaultDataItem { Id = content.Id, Key = content.Key, Collection = content.Collection, Title = content.Title, Data = content.JsonAsJToken, CreatedByUserId = content.CreatedByUserId, LastModifiedByUserId = content.LastModifiedByUserId, LastModifiedOnDate = content.LastModifiedOnDate, CreatedOnDate = content.CreatedOnDate, Item = content }); }
public virtual void Add(DataSourceContext context, JToken data) { OpenContentController ctrl = new OpenContentController(); var indexConfig = OpenContentUtils.GetIndexConfig(new FolderUri(context.TemplateFolder), context.Collection); var content = new OpenContentInfo() { ModuleId = GetModuleId(context), Collection = context.Collection, Title = data["Title"] == null ? "" : data["Title"].ToString(), Json = data.ToString(), CreatedByUserId = context.UserId, CreatedOnDate = DateTime.Now, LastModifiedByUserId = context.UserId, LastModifiedOnDate = DateTime.Now }; ctrl.AddContent(content, context.Index, indexConfig); }
/// <summary> /// Perform a particular action. /// </summary> /// <param name="context">The context.</param> /// <param name="action">The action.</param> /// <param name="item">The item to perform the action on.</param> /// <param name="data">The additional data/parameters needed to perform the Action.</param> /// <returns>Optionally return a JToken with a result value</returns> /// <exception cref="System.NotImplementedException"></exception> public virtual JToken Action(DataSourceContext context, string action, IDataItem item, JToken data) { if (action == "FormSubmit") { OpenContentController ctrl = new OpenContentController(); var indexConfig = OpenContentUtils.GetIndexConfig(new FolderUri(context.TemplateFolder), "Submissions"); var content = new OpenContentInfo() { ModuleId = GetModuleId(context), Collection = "Submissions", Title = "Form", Json = data["form"].ToString(), CreatedByUserId = context.UserId, CreatedOnDate = DateTime.Now, LastModifiedByUserId = context.UserId, LastModifiedOnDate = DateTime.Now }; ctrl.AddContent(content, context.Index, indexConfig); return(FormUtils.FormSubmit(data as JObject)); } return(null); }
public virtual IDataItem Get(DataSourceContext context, string id) { OpenContentController ctrl = new OpenContentController(); OpenContentInfo content = null; if (!string.IsNullOrEmpty(id) && id != "-1") { LogContext.Log(context.ActiveModuleId, "Get DataItem", "Request", string.Format("{0}.Get() with id {1}", Name, id)); int idint; if (int.TryParse(id, out idint)) { content = ctrl.GetContent(idint); } } else { LogContext.Log(context.ActiveModuleId, "Get DataItem", "Request", string.Format("{0}.Get() with id {1}. Returning first item of module.", Name, id)); content = ctrl.GetFirstContent(GetModuleId(context)); // single item } if (content == null) { Log.Logger.WarnFormat("Item not shown because no content item found. Id [{0}]. Context TabId: [{1}], ModuleId: [{2}]", id, GetTabId(context), GetModuleId(context)); LogContext.Log(context.ActiveModuleId, "Get DataItem", "Result", "not item found with id " + id); } else if (content.ModuleId == GetModuleId(context)) { var dataItem = CreateDefaultDataItem(content); LogContext.Log(context.ActiveModuleId, "Get DataItem", "Result", dataItem); return(dataItem); } else { LogContext.Log(context.ActiveModuleId, "Get DataItem", "Result", string.Format("no item returned as incompatible module ids {0}-{1}", content.ModuleId, GetModuleId(context))); } return(null); }