/// <summary> /// Validate the complete template /// </summary> /// <returns>Returns true if everything is valid false if not</returns> public bool Validate() { _profanityFilterState = ProfanityFilter.FilterState.Pass; bool isValid = true; foreach (UIField field in _uiFieldData.Values) { bool isFieldValid = true; isFieldValid = field.Validate(); if (field.ProfanityFilterState == ProfanityFilter.FilterState.FailRefer && _profanityFilterState != ProfanityFilter.FilterState.FailBlock) { _profanityFilterState = ProfanityFilter.FilterState.FailRefer; } else if(field.ProfanityFilterState == ProfanityFilter.FilterState.FailBlock) { _profanityFilterState = ProfanityFilter.FilterState.FailBlock; } if (isValid && !isFieldValid) { isValid = false; } } GenerateTemplateXML(); return isValid; }
/// <summary> /// Checks that the string parses without any profanities /// </summary> /// <param name="value">The string to check</param> /// <returns>Whether the string parses without any profanities</returns> private bool HasProfanities(string value) { string matchingProfanity; List<Term> terms = null; int forumId = 0; if (InputContext.DoesParamExist("forumid", "forumid")) { forumId = InputContext.GetParamIntOrZero("forumid", "forumid"); } ProfanityFilter.FilterState profanityState = ProfanityFilter.CheckForProfanities(InputContext.CurrentSite.ModClassID, value, out matchingProfanity, out terms, forumId); _profanityFilterState = profanityState; if (profanityState != ProfanityFilter.FilterState.FailBlock) { return false; } else { AddErrorXml("Profanity Error", "This field contains a blocking profanity. The profanity is " + matchingProfanity + ". Profanity Filter State = " + profanityState.ToString(), _errorXML); return true; } }