Esempio n. 1
0
        //============================================================
        // Static Methods
        //============================================================

        internal static SwearFilterConfiguration LoadConfiguration(string configFilename)
        {
            SwearFilterConfiguration blockedWords = null;
            FileStream blockedList = null;

            try
            {
                blockedList = File.Open(configFilename, FileMode.Open, FileAccess.Read);
                var configDoc = new XmlDocument();
                configDoc.Load(blockedList);

                XmlElement configuration = configDoc [MainEncosingTagName];
                if (configuration != null)
                {
                    XmlElement blockedWordsElement = configuration [BlockedWordsEnclosingTagName];
                    if (blockedWordsElement != null)
                    {
                        var allBlockedWords = new Collection <BlockedWord> ();
                        foreach (XmlElement blockedWordElement in blockedWordsElement.ChildNodes)
                        {
                            string word           = null;
                            var    blockedWordTag = blockedWordElement [BlockedWordTagName];
                            if (blockedWordTag != null)
                            {
                                word = blockedWordTag.InnerText;
                            }

                            string replacement            = null;
                            var    blockedWordReplacement = blockedWordElement [ReplacementTagName];
                            if (blockedWordReplacement != null)
                            {
                                replacement = blockedWordReplacement.InnerText;
                            }

                            var blockedWord = new BlockedWord {
                                Word = word, Replacement = replacement
                            };
                            if (blockedWord.Word != null)
                            {
                                allBlockedWords.Add(blockedWord);
                            }
                        }

                        blockedWords = new SwearFilterConfiguration {
                            _blockedWords = allBlockedWords
                        };
                        blockedWords.Validate();
                    }
                }
            }
            finally
            {
                if (blockedList != null)
                {
                    blockedList.Close();
                }
            }

            return(blockedWords);
        }
Esempio n. 2
0
        private static SwearFilterConfiguration GetConfiguration(string configFile)
        {
            string filename     = HttpContext.Current.Server.MapPath(configFile);
            var    blockedWords = (SwearFilterConfiguration)_allConfigurations [NormaliseKey(filename)];

            if ((blockedWords == null) && (File.Exists(filename)))
            {
                blockedWords = SwearFilterConfiguration.LoadConfiguration(filename);
                _allConfigurations [NormaliseKey(filename)] = blockedWords;
                WatchConfigFile(filename);
            }

            return(blockedWords);
        }
Esempio n. 3
0
        ///
        /// <summary>
        /// Render this control to the writer parameter specified.
        /// </summary>
        /// <remarks>
        /// Note for inheritors - for this control to function properly, any derived controls that override
        /// this method should ensure that they call this base method as part of their Render.
        /// </remarks>
        /// <param name="writer">The <see cref="HtmlTextWriter"/> object that receives the server control content.</param>
        ///
        protected override void Render(HtmlTextWriter writer)
        {
            HtmlTextWriter realWriter = HtmlTextWriterFactory.CreateCorrectHtmlTextWriter(writer);

            PowerPack.Announce(realWriter, ProductName);

            string innerHtml = GetInnerHtml();

            _blockedWords = GetConfiguration(_configFile);

            string filteredInnerHtml = FilterHtml(innerHtml);

            realWriter.Write(filteredInnerHtml);

            return;
        }