Global data processing

You can use the global data processing framework to process all data that is sent to the database. You can use it to define data processors, which are then used to track or modify the database entities upon their creation or modification.

The following sample creates simple text sanitizer that removes obscene words from a news content:

  1. Create a new type that inherits ProcessorBase and implement IDataProcessor,using the following code sample:
    C#
    using System;
    using System.Collections.Specialized;
    using System.ComponentModel;
    using Telerik.Sitefinity.Data.DataProcessing.Processors;
    using Telerik.Sitefinity.News.Model;
    using Telerik.Sitefinity.Processors;
    
    namespace WebApp
    {
        public class ObsceneWordsSanitizerProcessor : ProcessorBase, IDataProcessor
        {
            public virtual void Process(ref object value)
            {
                if (value != null && value is string)
                {
                    value = ((string)value).Replace("obscene_word", "CENSORED");
                }
            }
    
            public virtual bool ShouldProcess(PropertyDescriptor prop, Type type)
            {
                if (type == typeof(NewsItem) && prop.Name == "Content")
                {
                    return true;
                }
    
                return false;
            }
    
            protected override void Initialize(NameValueCollection config)
            {
            }
        }
    }
  2. In Sitefinity CMS backend, navigate to Administration» Settings» Advanced.
  3. In the left pane, expand Data» Data Processors and click Create new.
  4. In the Typefield enter the FullClrName of the processor implementation. 
    In this example, enter WebApp.ObsceneWordsSanitizerProcessor
  5. Save your changes.

RESULT: All the obscene words that you have defined in the processor will be censored. You can also implement more complex logic. Have in mind that this would slow down your save operation for the relevant content item.

Want to learn more?
Enhance your Sitefinity skills by enrolling in free training sessions. Become Sitefinity certified through Progress Education Community to strengthen your professional credentials.
New to Sitefinity?