public HttpResponseMessage LookupData(LookupDataRequestDTO req) { List <LookupResultDTO> res = new List <LookupResultDTO>(); try { var module = new OpenContentModuleInfo(ActiveModule); string key = req.dataKey; var additionalDataManifest = module.Settings.Template.Manifest.GetAdditionalData(key); IDataSource ds = DataSourceManager.GetDataSource(module.Settings.Manifest.DataSource); var dsContext = OpenContentUtils.CreateDataContext(module, UserInfo.UserID); var dataItems = ds.GetData(dsContext, additionalDataManifest.ScopeType, additionalDataManifest.StorageKey ?? key); if (dataItems != null) { JToken json = dataItems.Data; if (!string.IsNullOrEmpty(req.dataMember)) { json = json[req.dataMember]; } if (json is JArray) { if (LocaleController.Instance.GetLocales(PortalSettings.PortalId).Count > 1) { JsonUtils.SimplifyJson(json, DnnLanguageUtils.GetCurrentCultureCode()); } AddLookupItems(req.valueField, req.textField, req.childrenField, res, json as JArray); } } return(Request.CreateResponse(HttpStatusCode.OK, res)); } catch (Exception exc) { Log.Logger.Error(exc); return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, exc)); } }
public HttpResponseMessage LookupData(LookupDataRequestDTO req) { OpenContentSettings settings = ActiveModule.OpenContentSettings(); ModuleInfo module = ActiveModule; if (settings.ModuleId > 0) { ModuleController mc = new ModuleController(); module = mc.GetModule(settings.ModuleId, settings.TabId, false); } var manifest = settings.Template.Manifest; TemplateManifest templateManifest = settings.Template; string key = req.dataKey; var dataManifest = manifest.GetAdditionalData(key); List <LookupResultDTO> res = new List <LookupResultDTO>(); try { var ds = DataSourceManager.GetDataSource(manifest.DataSource); var dsContext = new DataSourceContext() { PortalId = PortalSettings.PortalId, TabId = ActiveModule.TabID, ModuleId = module.ModuleID, TabModuleId = ActiveModule.TabModuleID, UserId = UserInfo.UserID, TemplateFolder = settings.TemplateDir.FolderPath, Config = manifest.DataSourceConfig, //Options = reqOptions }; var dsItem = ds.GetData(dsContext, dataManifest.ScopeType, dataManifest.StorageKey ?? key); if (dsItem != null) { JToken json = dsItem.Data; if (!string.IsNullOrEmpty(req.dataMember)) { json = json[req.dataMember]; } if (json is JArray) { AddLookupItems(req.valueField, req.textField, req.childrenField, res, json as JArray); } /* * else if (json is JObject) * { * foreach (var item in json.Children<JProperty>()) * { * res.Add(new LookupResultDTO() * { * value = dataManifest.ModelKey ?? key +"/"+item.Name, * text = item.Value[req.textField] == null ? "" : item.Value[req.textField].ToString() * }); * } * } */ } return(Request.CreateResponse(HttpStatusCode.OK, res)); } catch (Exception exc) { Log.Logger.Error(exc); return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, exc)); } }