/// <summary> /// Used to process the current request. /// </summary> public override void ProcessRequest() { //Assemble page parts. RootElement.RemoveAll(); if (InputContext.ViewingUser.IsSuperUser == false && InputContext.ViewingUser.IsEditor == false) { SerialiseAndAppend(new Error { Type = "Access Denied", ErrorMessage = "Access denied" }, ""); return; } _siteConfig = SiteConfig.GetPreviewSiteConfig(InputContext.CurrentSite.SiteID, AppContext.ReaderCreator); _topicPage = new TopicPage { Page = "PREVIEW" }; _topicPage.TopicElementList = TopicElementList.GetTopicListFromDatabase(AppContext.ReaderCreator, InputContext.CurrentSite.SiteID, TopicStatus.Preview, false); GetQueryParameters(); var result = ProcessCommand(); if(result != null) { SerialiseAndAppend(result, ""); } var previewElement = AddElementTag(RootElement, "SITECONFIGPREVIEW"); var editKeyElement = AddElementTag(previewElement, "EDITKEY"); editKeyElement.InnerText = _siteConfig.EditKey.ToString(); SerialiseAndAppend(_siteConfig, "/DNAROOT/SITECONFIGPREVIEW"); SerialiseAndAppend(_topicPage, ""); }
/// <summary> /// Returns the object filles from the preview table. /// </summary> /// <param name="siteId"></param> /// <param name="readerCreator"></param> /// <returns></returns> public static SiteConfig GetPreviewSiteConfig(int siteId, IDnaDataReaderCreator readerCreator) { var siteConfig = new SiteConfig {SiteId = siteId}; using(var reader = readerCreator.CreateDnaDataReader("fetchpreviewsiteconfig")) { reader.AddParameter("siteid", siteId); reader.Execute(); if(reader.Read()) { siteConfig.EditKey = reader.GetGuid("editkey"); var siteConfigStr = reader.GetStringNullAsEmpty("config"); if(!string.IsNullOrEmpty(siteConfigStr)) { var xmlSiteConfig = new XmlDocument(); xmlSiteConfig.LoadXml(Entities.GetEntities() + siteConfigStr); /*var xmlV2Node = xmlSiteConfig.SelectSingleNode("//SITECONFIG/V2_BOARDS"); if(xmlV2Node != null) { siteConfig.V2Board = (SiteConfigV2Board)StringUtils.DeserializeObjectUsingXmlSerialiser(xmlV2Node.OuterXml, typeof(SiteConfigV2Board)); }*/ var elements = new List<XmlElement>(); foreach (XmlElement childNode in xmlSiteConfig.ChildNodes[1].ChildNodes) { if(childNode.Name == "V2_BOARDS") { siteConfig.V2Board = (SiteConfigV2Board)StringUtils.DeserializeObjectUsingXmlSerialiser(childNode.OuterXml, typeof(SiteConfigV2Board)); } else { elements.Add(childNode); } } siteConfig.LegacyElements = elements.ToArray(); } } } return siteConfig; }
public MessageBoardBackup() { TopicPage = new TopicPage(); SiteConfig = new SiteConfig(); Date = DateTime.Now; }