Example #1
0
        /// <summary>
        /// Read a file of forbidden words and check the text
        /// for them.
        /// Check for empty string.
        /// </summary>
        /// <param name="value"></param>
        public static void ValidateComment(string value)
        {
            var words = value
                        .Trim()
                        .Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries)
                        .ToList();

            if (!(0 < words.Count && words.Count <= 200))
            {
                throw new ArgumentException("Comment must be between 0 and 200 words");
            }

            foreach (var word in words)
            {
                CheckForLettersAndDigits(word);
                CheckWordLength(word);
            }

            var forbidden = ReadWriteFile.ReadForbiddenWordsFromFile();

            foreach (var word in forbidden)
            {
                var check = words.Where(current => current == word).Count();
                if (check > 0)
                {
                    throw new ArgumentException("Using inappropriate language");
                }
            }
        }