Пример #1
0
        public void ImportModule(int moduleId, string Content, string version, int userId)
        {
            var module                 = new OpenContentModuleInfo(moduleId, Null.NullInteger);
            var index                  = module.Settings.Template.Manifest.Index;
            var indexConfig            = OpenContentUtils.GetIndexConfig(module.Settings.Template);
            OpenContentController ctrl = new OpenContentController();
            XmlNode xml                = Globals.GetContent(Content, "opencontent");

            foreach (XmlNode item in xml.SelectNodes("item"))
            {
                XmlNode json        = item.SelectSingleNode("json");
                XmlNode collection  = item.SelectSingleNode("collection");
                XmlNode key         = item.SelectSingleNode("key");
                var     contentInfo = new OpenContentInfo()
                {
                    ModuleId             = moduleId,
                    Collection           = collection?.InnerText ?? "",
                    Key                  = key?.InnerText ?? "",
                    Json                 = item.InnerText,
                    CreatedByUserId      = userId,
                    CreatedOnDate        = DateTime.Now,
                    LastModifiedByUserId = userId,
                    LastModifiedOnDate   = DateTime.Now,
                    Title                = ""
                };
                ctrl.AddContent(contentInfo, index, indexConfig);
            }
        }
Пример #2
0
        public void UpdateContent(OpenContentInfo content)
        {
            ClearDataCache(content);
            var json = content.JsonAsJToken;
            OpenContentVersion ver = new OpenContentVersion()
            {
                Json                 = json,
                CreatedByUserId      = content.CreatedByUserId,
                CreatedOnDate        = content.CreatedOnDate,
                LastModifiedByUserId = content.LastModifiedByUserId,
                LastModifiedOnDate   = content.LastModifiedOnDate
            };
            var versions = content.Versions;

            if (versions.Count == 0 || versions[0].Json.ToString() != content.Json)
            {
                versions.Insert(0, ver);
                if (versions.Count > OpenContentControllerFactory.Instance.OpenContentGlobalSettingsController(PortalSettings.Current.PortalId).GetMaxVersions())
                {
                    versions.RemoveAt(versions.Count - 1);
                }
                content.Versions = versions;
            }
            using (IDataContext ctx = DataContext.Instance())
            {
                var rep = ctx.GetRepository <OpenContentInfo>();
                rep.Update(content);
                ModuleController.SynchronizeModule(content.ModuleId);
            }
        }
Пример #3
0
        public void AddContent(OpenContentInfo content, bool index, FieldConfig indexConfig)
        {
            ClearCache(content);

            OpenContentVersion ver = new OpenContentVersion()
            {
                Json                 = content.JsonAsJToken,
                CreatedByUserId      = content.CreatedByUserId,
                CreatedOnDate        = content.CreatedOnDate,
                LastModifiedByUserId = content.LastModifiedByUserId,
                LastModifiedOnDate   = content.LastModifiedOnDate
            };
            var versions = new List <OpenContentVersion>();

            versions.Add(ver);
            content.Versions = versions;
            using (IDataContext ctx = DataContext.Instance())
            {
                var rep = ctx.GetRepository <OpenContentInfo>();
                rep.Insert(content);
                ModuleController.SynchronizeModule(content.ModuleId);
            }
            if (index)
            {
                LuceneController.Instance.Add(content, indexConfig);
                LuceneController.Instance.Store.Commit();
            }
        }
        public void AddContent(OpenContentInfo content)
        {
            SynchronizeXml(content);
            ClearDataCache(content);
            var json = content.JsonAsJToken;

            if (string.IsNullOrEmpty(content.Key))
            {
                content.Key = json["_id"]?.ToString() ?? ObjectId.NewObjectId().ToString();
            }
            if (string.IsNullOrEmpty(content.Collection))
            {
                content.Collection = App.Config.DefaultCollection;
            }
            OpenContentVersion ver = new OpenContentVersion()
            {
                Json                 = json,
                CreatedByUserId      = content.CreatedByUserId,
                CreatedOnDate        = content.CreatedOnDate,
                LastModifiedByUserId = content.LastModifiedByUserId,
                LastModifiedOnDate   = content.LastModifiedOnDate
            };
            var versions = new List <OpenContentVersion>();

            versions.Add(ver);
            content.Versions = versions;
            using (IDataContext ctx = DataContext.Instance())
            {
                var rep = ctx.GetRepository <OpenContentInfo>();
                rep.Insert(content);
            }
        }
        public void UpdateContent(OpenContentInfo content)
        {
            ClearDataCache(content);
            var json = content.JsonAsJToken;

            SynchronizeXml(content);
            OpenContentVersion ver = new OpenContentVersion()
            {
                Json                 = json,
                CreatedByUserId      = content.CreatedByUserId,
                CreatedOnDate        = content.CreatedOnDate,
                LastModifiedByUserId = content.LastModifiedByUserId,
                LastModifiedOnDate   = content.LastModifiedOnDate
            };
            var versions = content.Versions;

            if (versions.Count == 0 || versions[0].Json.ToString() != content.Json)
            {
                versions.Insert(0, ver);
                if (versions.Count > (PortalId > -1 ? 5 : App.Services.CreateGlobalSettingsRepository(PortalId).GetMaxVersions()))
                {
                    versions.RemoveAt(versions.Count - 1);
                }
                content.Versions = versions;
            }
            using (IDataContext ctx = DataContext.Instance())
            {
                var rep = ctx.GetRepository <OpenContentInfo>();
                rep.Update(content);
            }
        }
 public void UpdateContent(OpenContentInfo Content)
 {
     using (IDataContext ctx = DataContext.Instance())
     {
         var rep = ctx.GetRepository<OpenContentInfo>();
         rep.Update(Content);
     }
 }
        public void DeleteContent(OpenContentInfo content)
        {
            ClearDataCache(content);

            using (IDataContext ctx = DataContext.Instance())
            {
                var rep = ctx.GetRepository <OpenContentInfo>();
                rep.Delete(content);
            }
        }
Пример #8
0
        public HttpResponseMessage Add(UpdateRequest req)
        {
            try
            {
                ModuleController mc          = new ModuleController();
                var  requestModule           = mc.GetModule(req.ModuleId, req.TabId, false);
                bool index                   = false;
                OpenContentSettings settings = requestModule.OpenContentSettings();
                ModuleInfo          module   = requestModule;
                if (settings.ModuleId > 0)
                {
                    module = mc.GetModule(settings.ModuleId, settings.TabId, false);
                }
                var manifest = settings.Template.Manifest;
                TemplateManifest templateManifest = settings.Template;
                index = settings.Template.Manifest.Index;
                string editRole = manifest.GetEditRole();

                bool listMode              = templateManifest != null && templateManifest.IsListTemplate;
                int  createdByUserid       = -1;
                OpenContentController ctrl = new OpenContentController();

                if (listMode)
                {
                    if (!OpenContentUtils.HasEditPermissions(PortalSettings, module, editRole, createdByUserid))
                    {
                        return(Request.CreateResponse(HttpStatusCode.Unauthorized));
                    }
                    var             indexConfig = OpenContentUtils.GetIndexConfig(settings.Template.Key.TemplateDir);
                    OpenContentInfo content     = new OpenContentInfo()
                    {
                        ModuleId             = module.ModuleID,
                        Title                = ActiveModule.ModuleTitle,
                        Json                 = req.json.ToString(),
                        JsonAsJToken         = req.json,
                        CreatedByUserId      = UserInfo.UserID,
                        CreatedOnDate        = DateTime.Now,
                        LastModifiedByUserId = UserInfo.UserID,
                        LastModifiedOnDate   = DateTime.Now,
                        Html                 = "",
                    };
                    ctrl.AddContent(content, index, indexConfig);
                    return(Request.CreateResponse(HttpStatusCode.OK, ""));
                }
                else
                {
                    return(Request.CreateResponse(HttpStatusCode.BadRequest, "It's not a list mode module"));
                }
            }
            catch (Exception exc)
            {
                Log.Logger.Error(exc);
                return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, exc));
            }
        }
Пример #9
0
 private static void ClearCache(OpenContentInfo content)
 {
     if (content.ContentId > 0)
     {
         DataCache.ClearCache(GetContentIdCacheKey(content.ContentId));
     }
     if (content.ModuleId > 0)
     {
         DataCache.ClearCache(GetModuleIdCacheKey(content.ModuleId));
     }
 }
 public void UpdateXmlContent(OpenContentInfo content)
 {
     ClearDataCache(content);
     SynchronizeXml(content);
     using (IDataContext ctx = DataContext.Instance())
     {
         var rep = ctx.GetRepository <OpenContentInfo>();
         rep.Update(content);
         ModuleController.SynchronizeModule(content.ModuleId);
     }
 }
Пример #11
0
 private static void ClearDataCache(OpenContentInfo content)
 {
     if (content.ContentId > 0)
     {
         App.Services.CacheAdapter.ClearCache(GetContentIdCacheKey(content.ContentId));
     }
     if (content.ModuleId > 0)
     {
         App.Services.CacheAdapter.ClearCache(GetModuleIdCacheKey(content.ModuleId));
     }
 }
 public void ImportModule(int ModuleID, string Content, string Version, int UserID)
 {
     OpenContentController ctrl = new OpenContentController();
     XmlNode xml = Globals.GetContent(Content, "opencontent");
     var content = new OpenContentInfo()
     {
         ModuleId = ModuleID,
         Json = xml.SelectSingleNode("json").InnerText,
         CreatedByUserId = UserID,
         CreatedOnDate = DateTime.Now,
         LastModifiedByUserId = UserID,
         LastModifiedOnDate = DateTime.Now,
         Html = ""
     };
     ctrl.AddContent(content);
 }
Пример #13
0
        public void DeleteContent(OpenContentInfo content, bool index)
        {
            ClearCache(content);

            using (IDataContext ctx = DataContext.Instance())
            {
                var rep = ctx.GetRepository <OpenContentInfo>();
                rep.Delete(content);
                ModuleController.SynchronizeModule(content.ModuleId);
            }
            if (index)
            {
                LuceneController.Instance.Delete(content);
                LuceneController.Instance.Store.Commit();
            }
        }
Пример #14
0
        public void AddContent(OpenContentInfo content, bool index, FieldConfig indexConfig)
        {
            ClearCache(content);
            var json = content.JsonAsJToken;

            if (string.IsNullOrEmpty(content.Key))
            {
                if (json["_id"] != null)
                {
                    content.Key = json["_id"].ToString();
                }
                else
                {
                    content.Key = ObjectId.NewObjectId().ToString();
                    //json["_id"] = content.Id;
                    //content.Json = json.ToString();
                }
            }
            if (string.IsNullOrEmpty(content.Collection))
            {
                content.Collection = AppConfig.DEFAULT_COLLECTION;
            }
            OpenContentVersion ver = new OpenContentVersion()
            {
                Json                 = json,
                CreatedByUserId      = content.CreatedByUserId,
                CreatedOnDate        = content.CreatedOnDate,
                LastModifiedByUserId = content.LastModifiedByUserId,
                LastModifiedOnDate   = content.LastModifiedOnDate
            };
            var versions = new List <OpenContentVersion>();

            versions.Add(ver);
            content.Versions = versions;
            using (IDataContext ctx = DataContext.Instance())
            {
                var rep = ctx.GetRepository <OpenContentInfo>();
                rep.Insert(content);
                ModuleController.SynchronizeModule(content.ModuleId);
            }
            if (index)
            {
                LuceneController.Instance.Add(content, indexConfig);
                LuceneController.Instance.Store.Commit();
            }
        }
Пример #15
0
 public static void HydrateDefaultFields(this OpenContentInfo content, FieldConfig indexConfig)
 {
     if (indexConfig.HasField(AppConfig.FieldNamePublishStartDate) &&
         content.JsonAsJToken != null && content.JsonAsJToken[AppConfig.FieldNamePublishStartDate] == null)
     {
         content.JsonAsJToken[AppConfig.FieldNamePublishStartDate] = DateTime.MinValue;
     }
     if (indexConfig.HasField(AppConfig.FieldNamePublishEndDate) &&
         content.JsonAsJToken != null && content.JsonAsJToken[AppConfig.FieldNamePublishEndDate] == null)
     {
         content.JsonAsJToken[AppConfig.FieldNamePublishEndDate] = DateTime.MaxValue;
     }
     if (indexConfig.HasField(AppConfig.FieldNamePublishStatus) &&
         content.JsonAsJToken != null && content.JsonAsJToken[AppConfig.FieldNamePublishStatus] == null)
     {
         content.JsonAsJToken[AppConfig.FieldNamePublishStatus] = "published";
     }
 }
Пример #16
0
        public void ImportModule(int moduleId, string Content, string version, int userId)
        {
            OpenContentController ctrl = new OpenContentController();
            XmlNode xml     = Globals.GetContent(Content, "opencontent");
            var     content = new OpenContentInfo()
            {
                ModuleId             = moduleId,
                Json                 = xml.SelectSingleNode("json").InnerText,
                CreatedByUserId      = userId,
                CreatedOnDate        = DateTime.Now,
                LastModifiedByUserId = userId,
                LastModifiedOnDate   = DateTime.Now,
                Title                = "",
                Html                 = ""
            };

            ctrl.AddContent(content, false, null);
        }
Пример #17
0
        public HttpResponseMessage Add(UpdateRequest req)
        {
            try
            {
                var    module   = new OpenContentModuleInfo(req.ModuleId, req.TabId);
                string editRole = module.Settings.Template.Manifest.GetEditRole();

                OpenContentController ctrl = new OpenContentController();

                if (module.IsListMode())
                {
                    if (!OpenContentUtils.HasEditPermissions(PortalSettings, module.ViewModule, editRole, -1))
                    {
                        Log.Logger.WarnFormat("Failed the HasEditPermissions() check for ");
                        return(Request.CreateResponse(HttpStatusCode.Unauthorized, "Failed the HasEditPermissions() check"));
                    }
                    var             index       = module.Settings.Template.Manifest.Index;
                    var             indexConfig = OpenContentUtils.GetIndexConfig(module.Settings.Template.Key.TemplateDir, "Items");
                    OpenContentInfo content     = new OpenContentInfo()
                    {
                        ModuleId             = module.DataModule.ModuleID,
                        Collection           = req.Collection,
                        Title                = ActiveModule.ModuleTitle,
                        Json                 = req.json.ToString(),
                        CreatedByUserId      = UserInfo.UserID,
                        CreatedOnDate        = DateTime.Now,
                        LastModifiedByUserId = UserInfo.UserID,
                        LastModifiedOnDate   = DateTime.Now
                    };
                    ctrl.AddContent(content, index, indexConfig);
                    return(Request.CreateResponse(HttpStatusCode.OK, ""));
                }
                else
                {
                    return(Request.CreateResponse(HttpStatusCode.BadRequest, "It's not a list mode module"));
                }
            }
            catch (Exception exc)
            {
                Log.Logger.Error(exc);
                return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, exc));
            }
        }
 private void SynchronizeXml(OpenContentInfo content)
 {
     if (PortalId > -1)
     {
         if (App.Services.CreateGlobalSettingsRepository(PortalId).IsSaveXml() && !string.IsNullOrEmpty(content.Json))
         {
             try
             {
                 content.Xml = Newtonsoft.Json.JsonConvert.DeserializeXNode(content.Json, "root").ToString();
             }
             catch (Exception ex)
             {
                 App.Services.Logger.Error($"Error while Updating OpenContent Xml data for module {content.ModuleId}, ContentId {content.ContentId}", ex);
             }
         }
         else
         {
             content.Xml = null;
         }
     }
 }
Пример #19
0
 private void SynchronizeXml(OpenContentInfo content)
 {
     if (PortalId > -1)
     {
         if (OpenContentControllerFactory.Instance.OpenContentGlobalSettingsController(PortalId).IsSaveXml() &&
             !string.IsNullOrEmpty(content.Json))
         {
             try
             {
                 content.Xml = Newtonsoft.Json.JsonConvert.DeserializeXNode(content.Json, "root").ToString();
             }
             catch (Exception ex)
             {
                 Log.Logger.Error($"Error while Updating OpenContent Xml data for module {content.ModuleId}, ContentId {content.ContentId}", ex);
             }
         }
         else
         {
             content.Xml = null;
         }
     }
 }
Пример #20
0
        public void UpdateContent(OpenContentInfo content, bool index, FieldConfig indexConfig)
        {
            ClearCache(content);
            var json = content.JsonAsJToken;
            //json["_id"] = content.Id;
            //content.Json = json.ToString();
            OpenContentVersion ver = new OpenContentVersion()
            {
                Json                 = json,
                CreatedByUserId      = content.CreatedByUserId,
                CreatedOnDate        = content.CreatedOnDate,
                LastModifiedByUserId = content.LastModifiedByUserId,
                LastModifiedOnDate   = content.LastModifiedOnDate
            };
            var versions = content.Versions;

            if (versions.Count == 0 || versions[0].Json.ToString() != content.Json)
            {
                versions.Insert(0, ver);
                if (versions.Count > OpenContentControllerFactory.Instance.OpenContentGlobalSettingsController.GetMaxVersions())
                {
                    versions.RemoveAt(versions.Count - 1);
                }
                content.Versions = versions;
            }
            using (IDataContext ctx = DataContext.Instance())
            {
                var rep = ctx.GetRepository <OpenContentInfo>();
                rep.Update(content);
                ModuleController.SynchronizeModule(content.ModuleId);
            }
            if (index)
            {
                content.HydrateDefaultFields(indexConfig);
                LuceneController.Instance.Update(content, indexConfig);
                LuceneController.Instance.Store.Commit();
            }
        }
        public HttpResponseMessage Update(JObject json)
        {
            try
            {
                int ModuleId = ActiveModule.ModuleID;
                OpenContentController ctrl = new OpenContentController();
                var content = ctrl.GetFirstContent(ModuleId);
                if (content == null)
                {
                    content = new OpenContentInfo()
                    {
                        ModuleId = ModuleId,
                        Title = json["form"]["Title"] == null ? ActiveModule.ModuleTitle : json["form"]["Title"].ToString(),
                        Json = json["form"].ToString(),
                        CreatedByUserId = UserInfo.UserID,
                        CreatedOnDate = DateTime.Now,
                        LastModifiedByUserId = UserInfo.UserID,
                        LastModifiedOnDate = DateTime.Now,
                        Html = "",
                    };
                    ctrl.AddContent(content);
                }
                else
                {
                    content.Title = json["form"]["Title"] == null ? ActiveModule.ModuleTitle : json["form"]["Title"].ToString();
                    content.Json = json["form"].ToString();
                    content.LastModifiedByUserId = UserInfo.UserID;
                    content.LastModifiedOnDate = DateTime.Now;
                    ctrl.UpdateContent(content);
                }
                if (json["form"]["ModuleTitle"] != null && json["form"]["ModuleTitle"].Type == JTokenType.String)
                {
                    string ModuleTitle = json["form"]["ModuleTitle"].ToString();
                    OpenContentUtils.UpdateModuleTitle(ActiveModule, ModuleTitle);
                }

                return Request.CreateResponse(HttpStatusCode.OK, "");
            }
            catch (Exception exc)
            {
                Logger.Error(exc);
                return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, exc);
            }
        }
Пример #22
0
 public string GetScope()
 {
     return(OpenContentInfo.GetScope(ModuleId, Collection));
 }
Пример #23
0
 public void UpdateContent(OpenContentInfo content)
 {
     UpdateContent(content, false, null);
 }
Пример #24
0
        private void SaveData()
        {
            OpenContentController ctrl = new OpenContentController();
            var data = ctrl.GetFirstContent(ModuleId);

            if (string.IsNullOrEmpty(txtSource.Text))
            {
                if (data != null)
                {
                    ctrl.DeleteContent(data);
                }
            }
            else
            {
                JObject json = JObject.Parse(txtSource.Text);
                if (data == null)
                {
                    data = new OpenContentInfo()
                    {
                        ModuleId = ModuleId,
                        Title = json["Title"] == null ? ModuleContext.Configuration.ModuleTitle : json["Title"].ToString(),
                        CreatedByUserId = UserInfo.UserID,
                        CreatedOnDate = DateTime.Now,
                        LastModifiedByUserId = UserInfo.UserID,
                        LastModifiedOnDate = DateTime.Now,
                        Html = "",
                        Json = txtSource.Text
                    };
                    ctrl.AddContent(data);
                }
                else
                {
                    data.Title = json["Title"] == null ? ModuleContext.Configuration.ModuleTitle : json["Title"].ToString();
                    data.LastModifiedByUserId = UserInfo.UserID;
                    data.LastModifiedOnDate = DateTime.Now;
                    data.Json = txtSource.Text;
                    ctrl.UpdateContent(data);
                }

                if (json["ModuleTitle"] != null && json["ModuleTitle"].Type == JTokenType.String)
                {
                    string ModuleTitle = json["ModuleTitle"].ToString();
                    OpenContentUtils.UpdateModuleTitle(ModuleContext.Configuration, ModuleTitle);
                }
            }
        }
Пример #25
0
 public void AddContent(OpenContentInfo content)
 {
     AddContent(content, false, null);
 }