public static void SaveConfig(RewriterRuleCollection rules)
        {
            if (rules != null)
            {
                var config = new RewriterConfiguration {
                    Rules = rules
                };

                //Create a new Xml Serializer
                var ser = new XmlSerializer(typeof(RewriterConfiguration));

                //Create a FileStream for the Config file
                string filePath = Globals.ApplicationMapPath + "\\SiteUrls.config";
                if (File.Exists(filePath))
                {
                    //make sure file is not read-only
                    File.SetAttributes(filePath, FileAttributes.Normal);
                }
                var fileWriter = new FileStream(filePath, FileMode.Create, FileAccess.Write, FileShare.Write);

                //Open up the file to serialize
                var writer = new StreamWriter(fileWriter);

                //Serialize the RewriterConfiguration
                ser.Serialize(writer, config);

                //Close the Writers
                writer.Close();
                fileWriter.Close();

                //Set Cache
                DataCache.SetCache("RewriterConfig", config, new DNNCacheDependency(filePath));
            }
        }
Beispiel #2
0
        public static void SaveConfig(RewriterRuleCollection rules)
        {
            if (rules != null)
            {
                var config = new RewriterConfiguration {
                    Rules = rules
                };

                //Create a new Xml Serializer
                var ser = new XmlSerializer(typeof(RewriterConfiguration));

                //Create a FileStream for the Config file
                var filePath = Common.Utilities.Config.GetPathToFile(Common.Utilities.Config.ConfigFileType.SiteUrls);
                if (File.Exists(filePath))
                {
                    //make sure file is not read-only
                    File.SetAttributes(filePath, FileAttributes.Normal);
                }
                using (var fileWriter = new FileStream(filePath, FileMode.Create, FileAccess.Write, FileShare.Write))
                    using (var writer = new StreamWriter(fileWriter))
                    {
                        //Serialize the RewriterConfiguration
                        ser.Serialize(writer, config);

                        //Close the Writers
                        writer.Close();
                        fileWriter.Close();
                    }

                //Set Cache
                DataCache.SetCache("RewriterConfig", config, new DNNCacheDependency(filePath));
            }
        }
        public static RewriterConfiguration GetConfig()
        {
            var config = new RewriterConfiguration {Rules = new RewriterRuleCollection()};
            FileStream fileReader = null;
            string filePath = "";
            try
            {
                config = (RewriterConfiguration) DataCache.GetCache("RewriterConfig");
                if (config == null)
                {
	                lock (_threadLocker)
	                {
						config = (RewriterConfiguration) DataCache.GetCache("RewriterConfig");
		                if (config == null)
		                {
			                filePath = Common.Utilities.Config.GetPathToFile(Common.Utilities.Config.ConfigFileType.SiteUrls);

			                //Create a FileStream for the Config file
			                fileReader = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read);
			                var doc = new XPathDocument(fileReader);
			                config = new RewriterConfiguration {Rules = new RewriterRuleCollection()};
			                foreach (XPathNavigator nav in doc.CreateNavigator().Select("RewriterConfig/Rules/RewriterRule"))
			                {
				                var rule = new RewriterRule
				                           {
					                           LookFor = nav.SelectSingleNode("LookFor").Value,
					                           SendTo = nav.SelectSingleNode("SendTo").Value
				                           };
				                config.Rules.Add(rule);
			                }
			                if (File.Exists(filePath))
			                {
				                //Set back into Cache
				                DataCache.SetCache("RewriterConfig", config, new DNNCacheDependency(filePath));
			                }
		                }
	                }
                }
            }
            catch (Exception ex)
            {
				//log it
                var log = new LogInfo {LogTypeKey = EventLogController.EventLogType.HOST_ALERT.ToString()};
                log.AddProperty("UrlRewriter.RewriterConfiguration", "GetConfig Failed");
                log.AddProperty("FilePath", filePath);
                log.AddProperty("ExceptionMessage", ex.Message);
                LogController.Instance.AddLog(log);
                Logger.Error(log);
            }
            finally
            {
                if (fileReader != null)
                {
					//Close the Reader
                    fileReader.Close();
                }
            }
            return config;
        }
        public static RewriterConfiguration GetConfig()
        {
            var config = new RewriterConfiguration {
                Rules = new RewriterRuleCollection()
            };
            FileStream fileReader = null;
            string     filePath   = "";

            try
            {
                config = (RewriterConfiguration)DataCache.GetCache("RewriterConfig");
                if ((config == null))
                {
                    filePath = Common.Utilities.Config.GetPathToFile(Common.Utilities.Config.ConfigFileType.SiteUrls);

                    //Create a FileStream for the Config file
                    fileReader = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read);
                    var doc = new XPathDocument(fileReader);
                    config = new RewriterConfiguration {
                        Rules = new RewriterRuleCollection()
                    };
                    foreach (XPathNavigator nav in doc.CreateNavigator().Select("RewriterConfig/Rules/RewriterRule"))
                    {
                        var rule = new RewriterRule {
                            LookFor = nav.SelectSingleNode("LookFor").Value, SendTo = nav.SelectSingleNode("SendTo").Value
                        };
                        config.Rules.Add(rule);
                    }
                    if (File.Exists(filePath))
                    {
                        //Set back into Cache
                        DataCache.SetCache("RewriterConfig", config, new DNNCacheDependency(filePath));
                    }
                }
            }
            catch (Exception ex)
            {
                //log it
                var log = new LogInfo {
                    LogTypeKey = EventLogController.EventLogType.HOST_ALERT.ToString()
                };
                log.AddProperty("UrlRewriter.RewriterConfiguration", "GetConfig Failed");
                log.AddProperty("FilePath", filePath);
                log.AddProperty("ExceptionMessage", ex.Message);
                LogController.Instance.AddLog(log);
                Logger.Error(log);
            }
            finally
            {
                if (fileReader != null)
                {
                    //Close the Reader
                    fileReader.Close();
                }
            }
            return(config);
        }
        public static void SaveConfig(RewriterRuleCollection rules)
        {
            if (rules != null)
            {
                var config = new RewriterConfiguration {Rules = rules};
                
				//Create a new Xml Serializer
				var ser = new XmlSerializer(typeof (RewriterConfiguration));
                
				//Create a FileStream for the Config file
				string filePath = Globals.ApplicationMapPath + "\\SiteUrls.config";
                if (File.Exists(filePath))
                {
					//make sure file is not read-only
                    File.SetAttributes(filePath, FileAttributes.Normal);
                }
                var fileWriter = new FileStream(filePath, FileMode.Create, FileAccess.Write, FileShare.Write);

                //Open up the file to serialize
                var writer = new StreamWriter(fileWriter);

                //Serialize the RewriterConfiguration
                ser.Serialize(writer, config);

                //Close the Writers
                writer.Close();
                fileWriter.Close();

                //Set Cache
                DataCache.SetCache("RewriterConfig", config, new DNNCacheDependency(filePath));
            }
        }
        protected override object SaveViewState()
        {
            var config = new RewriterConfiguration();
            config.Rules = Rules;

            object baseState = base.SaveViewState();
            var allStates = new object[2];
            allStates[0] = baseState;
            allStates[1] = XmlUtils.Serialize(config);

            return allStates;
        }
        protected override void LoadViewState(object savedState)
        {
            var myState = (object[]) savedState;
            if ((myState[0] != null))
            {
                base.LoadViewState(myState[0]);
            }
            if ((myState[1] != null))
            {
                var config = new RewriterConfiguration();

                //Deserialize into RewriterConfiguration
#pragma warning disable 612,618
                config = (RewriterConfiguration) XmlUtils.Deserialize(Convert.ToString(myState[1]), config.GetType());
#pragma warning restore 612,618
                Rules = config.Rules;
            }
        }
        protected override void LoadViewState(object savedState)
        {
            var myState = (object[]) savedState;
            if ((myState[0] != null))
            {
                base.LoadViewState(myState[0]);
            }
            if ((myState[1] != null))
            {
                var config = new RewriterConfiguration();

                //Deserialize into RewriterConfiguration
	            var xmlDocument = new XmlDocument();
				xmlDocument.LoadXml(Convert.ToString(myState[1]));
				config = CBO.DeserializeObject<RewriterConfiguration>(xmlDocument);
                Rules = config.Rules;
            }
        }