DeveelDB  20151217
complete SQL database system, primarly developed for .NET/Mono frameworks
TriggerEventRouter.cs
Go to the documentation of this file.
1 //
2 // Copyright 2010-2015 Deveel
3 //
4 // Licensed under the Apache License, Version 2.0 (the "License");
5 // you may not use this file except in compliance with the License.
6 // You may obtain a copy of the License at
7 //
8 // http://www.apache.org/licenses/LICENSE-2.0
9 //
10 // Unless required by applicable law or agreed to in writing, software
11 // distributed under the License is distributed on an "AS IS" BASIS,
12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 // See the License for the specific language governing permissions and
14 // limitations under the License.
15 //
16 
17 using System;
18 
19 using Deveel.Data.Diagnostics;
20 using Deveel.Data.Services;
21 
22 namespace Deveel.Data.Sql.Triggers {
24  public TriggerEventRouter(ISystemContext systemContext) {
25  if (systemContext == null)
26  throw new ArgumentNullException("systemContext");
27 
28  SystemContext = systemContext;
29  }
30 
31  public ISystemContext SystemContext { get; private set; }
32 
33  public bool CanRoute(IEvent @event) {
34  return @event is TriggerEvent;
35  }
36 
37  public void RouteEvent(IEvent e) {
38  var triggerEvent = (TriggerEvent) e;
39 
40  var listeners = SystemContext.ResolveAllServices<ITriggerListener>();
41  foreach (var listener in listeners) {
42  listener.OnTriggerEvent(triggerEvent);
43  }
44  }
45  }
46 }
TriggerEventRouter(ISystemContext systemContext)
The execution context of a database system, that is defining the configurations and the components us...
This is an event occurred during the lifetime of a database.
Definition: IEvent.cs:24
void OnTriggerEvent(TriggerEvent trigger)
This is the context of a database system, that handles the configurations and services used by all th...
Defines the basic logic for the dispatching of events within a system workflow.
Definition: IEventRouter.cs:36
void RouteEvent(IEvent e)
Routes the input event to the final destination.