public HttpResponseMessage Get(string entity, string id) { try { //if (entity == "items") var collection = App.Config.DefaultCollection; OpenContentModuleConfig module = OpenContentModuleConfig.Create(ActiveModule, PortalSettings); JObject reqOptions = null; if (module.IsListMode()) { var indexConfig = OpenContentUtils.GetIndexConfig(module.Settings.TemplateDir, collection); //bool isEditable = ActiveModule.CheckIfEditable(PortalSettings); IDataSource ds = DataSourceManager.GetDataSource(module.Settings.Manifest.DataSource); var dsContext = OpenContentUtils.CreateDataContext(module, UserInfo.UserID, false, reqOptions); dsContext.Collection = collection; var dsItem = ds.Get(dsContext, id); var res = new JObject(); res["meta"] = new JObject(); var items = new JArray(); if (dsItem != null) { var mf = new ModelFactorySingle(dsItem, module, collection); string raison = ""; if (!OpenContentUtils.HaveViewPermissions(dsItem, module.UserRoles.FromDnnRoles(), indexConfig, out raison)) { Exceptions.ProcessHttpException(new HttpException(404, "No detail view permissions for id=" + id + " (" + raison + ")")); //throw new UnauthorizedAccessException("No detail view permissions for id " + info.DetailItemId); } mf.Options = reqOptions; var model = mf.GetModelAsJson(false); items.Add(model); model["id"] = dsItem.Id; res["meta"]["total"] = dsItem == null ? 0 : 1; JsonUtils.IdJson(model); if (LogContext.IsLogActive) { var logKey = "Query"; LogContext.Log(module.ViewModule.ModuleId, logKey, "model", model); res["meta"]["logs"] = JToken.FromObject(LogContext.Current.ModuleLogs(module.ViewModule.ModuleId)); } } res[entity] = items; return(Request.CreateResponse(HttpStatusCode.OK, res)); } else { return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, "not supported because not in multi items template ")); } } catch (Exception exc) { App.Services.Logger.Error(exc); return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, exc)); } }
public HttpResponseMessage Post(string entity, [FromBody] JObject value) { // Add try { OpenContentModuleInfo module = new OpenContentModuleInfo(ActiveModule); var manifest = module.Settings.Template.Manifest; string editRole = manifest.GetEditRole(); IDataSource ds = DataSourceManager.GetDataSource(module.Settings.Manifest.DataSource); var dsContext = OpenContentUtils.CreateDataContext(module, UserInfo.UserID); if (!OpenContentUtils.HasEditPermissions(PortalSettings, ActiveModule, editRole, -1)) { return(Request.CreateResponse(HttpStatusCode.Unauthorized)); } ds.Add(dsContext, value.Properties().First().Value as JObject); var dsItem = ds.Get(dsContext, dsContext.Id); var res = new JObject(); res["meta"] = new JObject(); var items = new JArray(); if (dsItem != null) { var collection = AppConfig.DEFAULT_COLLECTION; var mf = new ModelFactorySingle(dsItem, module, PortalSettings, collection); var model = mf.GetModelAsJson(false); items.Add(model); model["id"] = dsContext.Id; res["meta"]["total"] = dsItem == null ? 0 : 1; JsonUtils.IdJson(model); if (LogContext.IsLogActive) { var logKey = "Query"; LogContext.Log(module.ViewModule.ModuleID, logKey, "model", model); res["meta"]["logs"] = JToken.FromObject(LogContext.Current.ModuleLogs(module.ViewModule.ModuleID)); } } res[entity] = items; return(Request.CreateResponse(HttpStatusCode.OK, res)); //return Request.CreateResponse(HttpStatusCode.OK, ""); } catch (Exception exc) { Log.Logger.Error(exc); return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, exc)); } }