Ejemplo n.º 1
0
 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);
            }
        }
Ejemplo n.º 3
0
 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.
            }
        }
Ejemplo n.º 5
0
 public NanoHookEventArgs(HookEventType eventType)
 {
     EventType = eventType;
 }
Ejemplo n.º 6
0
    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 );
        }
    }