public string GetDataList(RenderInfo info, OpenContentSettings settings, bool clientSide) { string templateKey = ""; info.ResetData(); var ds = DataSourceManager.GetDataSource(settings.Manifest.DataSource); var dsContext = new DataSourceContext() { ModuleId = info.ModuleId, ActiveModuleId = _module.ModuleID, TemplateFolder = settings.TemplateDir.FolderPath, Config = settings.Manifest.DataSourceConfig }; IEnumerable <IDataItem> resultList = new List <IDataItem>(); if (clientSide || !info.Files.DataInTemplate) { if (ds.Any(dsContext)) { info.SetData(resultList, settings.Data); info.DataExist = true; } if (info.Template.Views != null) { var indexConfig = OpenContentUtils.GetIndexConfig(info.Template.Key.TemplateDir); templateKey = GetTemplateKey(indexConfig); } } else { //server side bool useLucene = info.Template.Manifest.Index; if (useLucene) { PortalSettings portalSettings = PortalSettings.Current; var indexConfig = OpenContentUtils.GetIndexConfig(info.Template.Key.TemplateDir); if (info.Template.Views != null) { templateKey = GetTemplateKey(indexConfig); } bool isEditable = _module.CheckIfEditable(portalSettings);//portalSettings.UserMode != PortalSettings.Mode.Edit; QueryBuilder queryBuilder = new QueryBuilder(indexConfig); queryBuilder.Build(settings.Query, !isEditable, portalSettings.UserId, DnnLanguageUtils.GetCurrentCultureCode(), portalSettings.UserInfo.Social.Roles, QueryString); resultList = ds.GetAll(dsContext, queryBuilder.Select).Items; if (LogContext.IsLogActive) { //LogContext.Log(_module.ModuleID, "RequestContext", "EditMode", !addWorkFlow); LogContext.Log(_module.ModuleID, "RequestContext", "IsEditable", isEditable); LogContext.Log(_module.ModuleID, "RequestContext", "UserRoles", portalSettings.UserInfo.Social.Roles.Select(r => r.RoleName)); LogContext.Log(_module.ModuleID, "RequestContext", "CurrentUserId", portalSettings.UserId); var logKey = "Query"; LogContext.Log(_module.ModuleID, logKey, "select", queryBuilder.Select); LogContext.Log(_module.ModuleID, logKey, "result", resultList); } //Log.Logger.DebugFormat("Query returned [{0}] results.", total); if (!resultList.Any()) { if (ds.Any(dsContext) && settings.Query.IsEmpty()) { //there seems to be data in de database, but we did not find it in Lucene, so probably the data isn't indexed anymore/yet Components.Lucene.LuceneController.Instance.ReIndexModuleData(_module.ModuleID, settings); } //Log.Logger.DebugFormat("Query did not return any results. API request: [{0}], Lucene Filter: [{1}], Lucene Query:[{2}]", settings.Query, queryDef.Filter == null ? "" : queryDef.Filter.ToString(), queryDef.Query == null ? "" : queryDef.Query.ToString()); if (ds.Any(dsContext)) { info.SetData(resultList, settings.Data); info.DataExist = true; } } } else { resultList = ds.GetAll(dsContext, null).Items; if (LogContext.IsLogActive) { var logKey = "Get all data of module"; LogContext.Log(_module.ModuleID, logKey, "result", resultList); } } if (resultList.Any()) { info.SetData(resultList, settings.Data); } } return(templateKey); }