public HookEventArgs(int processID, HookEventType type, DateTime time = default(DateTime)) { this.ProcessID = processID; this.Type = type; if (time == default(DateTime)) { this.Time = DateTime.Now; } else { this.Time = time; } }
public static EntityChangeType ToEntityChangeType(this HookEventType type) { switch (type) { case HookEventType.Insert: return(EntityChangeType.Created); case HookEventType.Delete: return(EntityChangeType.Deleted); case HookEventType.Update: return(EntityChangeType.Updated); default: throw new ArgumentOutOfRangeException(nameof(type), type, null); } }
protected virtual void OnPreHook([NotNull] TDataContext db, [CanBeNull] TState state, [NotNull, ItemNotNull] EntityHookEvent <object>[] entities, HookEventType type) { }
private async Task InvokePostAsync(TDataContext db, TState state, EntityHookEvent[] entities, HookEventType type) { var data = entities .Select(entity => entity.ToTyped <T>()) .ToArray(); foreach (var a in postEventAsyncHandlers) { await a(db, state, data, type); // Don't use Task.WhenAll. Don't run in parallel. The Entity Framework data context does not allow parallel queries. } }
public NanoHookEventArgs(HookEventType eventType) { EventType = eventType; }
public void HookForEvents( HookEventType[] delegateTypes ) { _delegateTypes = delegateTypes; try { Guid ieServiceIdentifier = new Guid( "0002DF05-0000-0000-C000-000000000046" ); Guid ieInterfaceIdentifier = typeof( SHDocVw.IWebBrowser2 ).GUID; IServiceProvider serviceProvider = (IServiceProvider) _wpfWebBrowser.Document; _webBrowser2 = (SHDocVw.IWebBrowser2) serviceProvider.QueryService( ref ieServiceIdentifier, ref ieInterfaceIdentifier ); _webBrowserEvents = (SHDocVw.DWebBrowserEvents_Event) _webBrowser2; _webBrowserEvents2 = (SHDocVw.DWebBrowserEvents2_Event) _webBrowser2; } catch( Exception ex ) { throw new WpfWebBrowserExtenderComBindException( String.Empty, ex ); } Dictionary<HookEventType,HookForEventDelegate> hookForEvent = new Dictionary<HookEventType, HookForEventDelegate>(); hookForEvent.Add( HookEventType.DownloadBegin , HookForEventDownloadBegin ); hookForEvent.Add( HookEventType.ProgressChange , HookForEventPageLoadProgressUpdate ); hookForEvent.Add( HookEventType.DownloadComplete , HookForEventDownloadComplete ); hookForEvent.Add( HookEventType.NavigateError , HookForEventNavigateError ); hookForEvent.Add( HookEventType.NavigateComplete , HookForEventNavigateComplete2 ); hookForEvent.Add( HookEventType.NewWindow , HookForEventNewWindow ); foreach( HookEventType dt in _delegateTypes ) { hookForEvent[ dt ]( _webBrowserEvents, _webBrowserEvents2 ); } }