Exemple #1
0
        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>");
        }
Exemple #2
0
        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?
            }
        }