/// <summary> /// Validates the ContentFilter. /// </summary> /// <param name="context">The context.</param> /// <returns>The result of validation.</returns> public Result Validate(FilterContext context) { Result result = new Result(null); // check for empty filter. if (m_elements == null || m_elements.Count == 0) { return(result); } bool error = false; for (int ii = 0; ii < m_elements.Count; ii++) { ContentFilterElement element = m_elements[ii]; // check for null. if (element == null) { ServiceResult nullResult = ServiceResult.Create( StatusCodes.BadStructureMissing, "ContentFilterElement is null (Index={0}).", ii); result.ElementResults.Add(new ElementResult(nullResult)); error = true; continue; } element.Parent = this; // validate element. ElementResult elementResult = element.Validate(context, ii); if (ServiceResult.IsBad(elementResult.Status)) { result.ElementResults.Add(elementResult); error = true; continue; } result.ElementResults.Add(null); } // ensure the global error code. if (error) { result.Status = StatusCodes.BadContentFilterInvalid; } else { result.ElementResults.Clear(); } return(result); }