void ExportSettings(ModuleInfo module, StringBuilder strXml) { var settings = new DocumentsSettingsRepository().GetSettings(module); strXml.Append("<settings>"); strXml.AppendFormat("<allowusersort>{0}</allowusersort>", XmlUtils.XMLEncode(settings.AllowUserSort.ToString())); strXml.AppendFormat("<showtitlelink>{0}</showtitlelink>", XmlUtils.XMLEncode(settings.ShowTitleLink.ToString())); strXml.AppendFormat( "<usecategorieslist>{0}</usecategorieslist>", XmlUtils.XMLEncode(settings.UseCategoriesList.ToString())); strXml.AppendFormat( "<categorieslistname>{0}</categorieslistname>", XmlUtils.XMLEncode(settings.CategoriesListName)); strXml.AppendFormat("<defaultfolder>{0}</defaultfolder>", XmlUtils.XMLEncode(settings.DefaultFolder.ToString())); strXml.AppendFormat("<displaycolumns>{0}</displaycolumns>", XmlUtils.XMLEncode(settings.DisplayColumns)); strXml.AppendFormat("<sortorder>{0}</sortorder>", XmlUtils.XMLEncode(settings.SortOrder)); strXml.AppendFormat("<dateTimeFormat>{0}</dateTimeFormat>", XmlUtils.XMLEncode(settings.DateTimeFormat)); strXml.Append("</settings>"); }
void ImportSettings(ModuleInfo module, string content) { var xmlSettings = Globals.GetContent(content, "documents/settings"); if (xmlSettings != null) { var settingsRepository = new DocumentsSettingsRepository(); var settings = settingsRepository.GetSettings(module); settings.AllowUserSort = XmlUtils.GetNodeValueBoolean(xmlSettings, "allowusersort"); settings.ShowTitleLink = XmlUtils.GetNodeValueBoolean(xmlSettings, "showtitlelink"); settings.UseCategoriesList = XmlUtils.GetNodeValueBoolean(xmlSettings, "usecategorieslist"); settings.CategoriesListName = XmlUtils.GetNodeValue(xmlSettings, "categorieslistname"); settings.DefaultFolder = TypeUtils.ParseToNullable <int> (XmlUtils.GetNodeValue( xmlSettings, "defaultfolder")); settings.DisplayColumns = XmlUtils.GetNodeValue(xmlSettings, "displaycolumns"); settings.SortOrder = XmlUtils.GetNodeValue(xmlSettings, "sortorder"); settings.DateTimeFormat = XmlUtils.GetNodeValue(xmlSettings, "dateTimeFormat"); settingsRepository.SaveSettings(module, settings); } }
/// <summary> /// ExportModule implements the IPortable ExportModule Interface /// </summary> /// <param name="ModuleID">The Id of the module to be exported</param> /// <history> /// [cnurse] 17 Nov 2004 documented /// [aglenwright] 18 Feb 2006 Added new fields: Createddate, description, /// modifiedbyuser, modifieddate, OwnedbyUser, SortorderIndex /// Added DocumentsSettings /// [togrean] 10 Jul 2007 Fixed issues with importing documet settings since new fileds /// were added: AllowSorting, default folder, list name /// [togrean] 13 Jul 2007 Added support for exporting documents Url tracking options /// </history> public string ExportModule (int moduleId) { var mCtrl = new ModuleController (); var module = mCtrl.GetModule (moduleId, Null.NullInteger); var strXml = new StringBuilder ("<documents>"); try { var documents = DocumentsDataProvider.Instance.GetDocuments (moduleId, module.PortalID); if (documents.Any ()) { foreach (var document in documents) { strXml.Append ("<document>"); strXml.AppendFormat ("<title>{0}</title>", XmlUtils.XMLEncode (document.Title)); strXml.AppendFormat ("<url>{0}</url>", XmlUtils.XMLEncode (document.Url)); strXml.AppendFormat ("<category>{0}</category>", XmlUtils.XMLEncode (document.Category)); strXml.AppendFormat ( "<description>{0}</description>", XmlUtils.XMLEncode (document.Description)); strXml.AppendFormat ( "<forcedownload>{0}</forcedownload>", XmlUtils.XMLEncode (document.ForceDownload.ToString ())); strXml.AppendFormat ("<ispublished>{0}</ispublished>", XmlUtils.XMLEncode (document.IsPublished.ToString ())); strXml.AppendFormat ( "<ownedbyuserid>{0}</ownedbyuserid>", XmlUtils.XMLEncode (document.OwnedByUserId.ToString ())); strXml.AppendFormat ( "<sortorderindex>{0}</sortorderindex>", XmlUtils.XMLEncode (document.SortOrderIndex.ToString ())); strXml.AppendFormat ( "<linkattributes>{0}</linkattributes>", XmlUtils.XMLEncode (document.LinkAttributes)); // Export Url Tracking options too var urlCtrl = new UrlController (); var urlTrackingInfo = urlCtrl.GetUrlTracking (module.PortalID, document.Url, moduleId); if ((urlTrackingInfo != null)) { strXml.AppendFormat ( "<logactivity>{0}</logactivity>", XmlUtils.XMLEncode (urlTrackingInfo.LogActivity.ToString ())); strXml.AppendFormat ( "<trackclicks>{0}</trackclicks>", XmlUtils.XMLEncode (urlTrackingInfo.TrackClicks.ToString ())); strXml.AppendFormat ("<newwindow>{0}</newwindow>", XmlUtils.XMLEncode (urlTrackingInfo.NewWindow.ToString ())); } strXml.Append ("</document>"); } } var settings = new DocumentsSettingsRepository ().GetSettings (module); strXml.Append ("<settings>"); strXml.AppendFormat ("<allowusersort>{0}</allowusersort>", XmlUtils.XMLEncode (settings.AllowUserSort.ToString ())); strXml.AppendFormat ("<showtitlelink>{0}</showtitlelink>", XmlUtils.XMLEncode (settings.ShowTitleLink.ToString ())); strXml.AppendFormat ( "<usecategorieslist>{0}</usecategorieslist>", XmlUtils.XMLEncode (settings.UseCategoriesList.ToString ())); strXml.AppendFormat ( "<categorieslistname>{0}</categorieslistname>", XmlUtils.XMLEncode (settings.CategoriesListName)); strXml.AppendFormat ("<defaultfolder>{0}</defaultfolder>", XmlUtils.XMLEncode (settings.DefaultFolder.ToString ())); strXml.AppendFormat ("<displaycolumns>{0}</displaycolumns>", XmlUtils.XMLEncode (settings.DisplayColumns)); strXml.AppendFormat ("<sortorder>{0}</sortorder>", XmlUtils.XMLEncode (settings.SortOrder)); strXml.Append ("</settings>"); } catch { // catch errors } finally { // make sure XML is valid strXml.Append ("</documents>"); } return strXml.ToString (); }
/// <summary> /// ImportModule implements the IPortable ImportModule Interface /// </summary> /// <param name="ModuleID">The Id of the module to be imported</param> /// <history> /// [cnurse] 17 Nov 2004 documented /// [aglenwright] 18 Feb 2006 Added new fields: Createddate, description, /// modifiedbyuser, modifieddate, OwnedbyUser, SortorderIndex /// Added DocumentsSettings /// [togrean] 10 Jul 2007 Fixed issues with importing documet settings since new fileds /// were added: AllowSorting, default folder, list name /// [togrean] 13 Jul 2007 Added support for importing documents Url tracking options /// </history> public void ImportModule (int moduleId, string content, string version, int userId) { var mCtrl = new ModuleController (); var module = mCtrl.GetModule (moduleId, Null.NullInteger); var xmlDocuments = Globals.GetContent (content, "documents"); var documentNodes = xmlDocuments.SelectNodes ("document"); foreach (XmlNode documentNode in documentNodes) { var document = new DocumentInfo (); document.ModuleId = moduleId; document.Title = documentNode ["title"].InnerText; var strUrl = documentNode ["url"].InnerText; document.Url = strUrl.StartsWith ("fileid=", StringComparison.InvariantCultureIgnoreCase) ? strUrl : Globals.ImportUrl (moduleId, strUrl); document.Category = documentNode ["category"].InnerText; document.Description = XmlUtils.GetNodeValue (documentNode, "description"); document.OwnedByUserId = XmlUtils.GetNodeValueInt (documentNode, "ownedbyuserid"); document.SortOrderIndex = XmlUtils.GetNodeValueInt (documentNode, "sortorderindex"); document.LinkAttributes = XmlUtils.GetNodeValue (documentNode, "linkattributes"); document.ForceDownload = XmlUtils.GetNodeValueBoolean (documentNode, "forcedownload"); document.IsPublished = XmlUtils.GetNodeValueBoolean (documentNode, "ispublished"); document.CreatedByUserId = userId; document.ModifiedByUserId = userId; var now = DateTime.Now; document.CreatedDate = now; document.ModifiedDate = now; DocumentsDataProvider.Instance.Add<DocumentInfo> (document); // Update Tracking options var urlType = document.Url.StartsWith ("fileid=", StringComparison.InvariantCultureIgnoreCase) ? "F" : "U"; var urlCtrl = new UrlController (); // If nodes not found, all values will be false urlCtrl.UpdateUrl ( module.PortalID, document.Url, urlType, XmlUtils.GetNodeValueBoolean ( documentNode, "logactivity"), XmlUtils.GetNodeValueBoolean ( documentNode, "trackclicks", true), moduleId, XmlUtils.GetNodeValueBoolean ( documentNode, "newwindow")); } var xmlSettings = Globals.GetContent (content, "documents/settings"); if (xmlSettings != null) { var settingsRepository = new DocumentsSettingsRepository (); var settings = settingsRepository.GetSettings (module); settings.AllowUserSort = XmlUtils.GetNodeValueBoolean (xmlSettings, "allowusersort"); settings.ShowTitleLink = XmlUtils.GetNodeValueBoolean (xmlSettings, "showtitlelink"); settings.UseCategoriesList = XmlUtils.GetNodeValueBoolean (xmlSettings, "usecategorieslist"); settings.CategoriesListName = XmlUtils.GetNodeValue (xmlSettings, "categorieslistname"); settings.DefaultFolder = TypeUtils.ParseToNullable<int> (XmlUtils.GetNodeValue ( xmlSettings, "defaultfolder")); settings.DisplayColumns = XmlUtils.GetNodeValue (xmlSettings, "displaycolumns"); settings.SortOrder = XmlUtils.GetNodeValue (xmlSettings, "sortorder"); settingsRepository.SaveSettings (module, settings); // REVIEW: Need module synchronization? } }