コード例 #1
0
        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));
            }
        }
コード例 #2
0
        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));
            }
        }