document.write('
Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. /// <summary>
  2.  /// Provides the abstract for registring the listener within the configuration
  3.  /// </summary>
  4.  public abstract class RegistrableListener
  5.  {
  6.   /// <summary>
  7.   /// Registers the listener within the config depending on the type of the listener inheriting this class
  8.   /// </summary>
  9.   /// <param name="configuration"></param>
  10.   public void Register(Configuration configuration)
  11.   {
  12.    EventListeners listeners = configuration.EventListeners;
  13.  
  14.    //If the listener is IFlushEntityEventListener
  15.    var asFlushEntityEventListener = this as IFlushEntityEventListener;
  16.    if (asFlushEntityEventListener != null)
  17.    {
  18.     listeners.FlushEntityEventListeners = new[] { asFlushEntityEventListener }
  19.      .Concat(listeners.FlushEntityEventListeners)
  20.      .ToArray();
  21.    }
  22.    //If the listener is ISaveOrUpdateEventListener
  23.    var asSaveOrUpdateEventListener = this as ISaveOrUpdateEventListener;
  24.    if (asSaveOrUpdateEventListener != null)
  25.    {
  26.     //Update SaveEventListeners
  27.     listeners.SaveEventListeners = new[] { asSaveOrUpdateEventListener }
  28.        .Concat(listeners.SaveEventListeners)
  29.        .ToArray();
  30.     //Update UpdateEventListeners
  31.     listeners.UpdateEventListeners = new[] { asSaveOrUpdateEventListener }
  32.        .Concat(listeners.UpdateEventListeners)
  33.        .ToArray();
  34.     //Update SaveOrUpdateEventListeners
  35.     listeners.SaveOrUpdateEventListeners = new[] { asSaveOrUpdateEventListener }
  36.       .Concat(listeners.SaveOrUpdateEventListeners)
  37.       .ToArray();
  38.    }
  39.    //If the listener is IMergeEventListener
  40.    var asMergeEventListener = this as IMergeEventListener;
  41.    if (asMergeEventListener != null)
  42.    {
  43.     listeners.MergeEventListeners = new[] { asMergeEventListener }
  44.        .Concat(listeners.MergeEventListeners)
  45.        .ToArray();
  46.    }
  47.    //If the listener is IPreInsertEventListener
  48.    var asPreInsertEventListener = this as IPreInsertEventListener;
  49.    if (asPreInsertEventListener != null)
  50.    {
  51.     listeners.PreInsertEventListeners = new[] { asPreInsertEventListener }
  52.        .Concat(listeners.PreInsertEventListeners)
  53.        .ToArray();
  54.    }
  55.   }
  56.  }
');