public TestEventCatcher(IProjectEvents source) { events = new TestEventArgsCollection(); source.ProjectLoading += new TestProjectEventHandler(OnTestProjectEvent); source.ProjectLoaded += new TestProjectEventHandler(OnTestProjectEvent); source.ProjectLoadFailed += new TestProjectEventHandler(OnTestProjectEvent); source.ProjectUnloading += new TestProjectEventHandler(OnTestProjectEvent); source.ProjectUnloaded += new TestProjectEventHandler(OnTestProjectEvent); source.ProjectUnloadFailed += new TestProjectEventHandler(OnTestProjectEvent); source.TestLoading += new TestEventHandler(OnTestEvent); source.TestLoaded += new TestEventHandler(OnTestEvent); source.TestLoadFailed += new TestEventHandler(OnTestEvent); source.TestUnloading += new TestEventHandler(OnTestEvent); source.TestUnloaded += new TestEventHandler(OnTestEvent); source.TestUnloadFailed += new TestEventHandler(OnTestEvent); source.TestReloading += new TestEventHandler(OnTestEvent); source.TestReloaded += new TestEventHandler(OnTestEvent); source.TestReloadFailed += new TestEventHandler(OnTestEvent); source.RunStarting += new TestEventHandler(OnTestEvent); source.RunFinished += new TestEventHandler(OnTestEvent); source.TestStarting += new TestEventHandler(OnTestEvent); source.TestFinished += new TestEventHandler(OnTestEvent); source.SuiteStarting += new TestEventHandler(OnTestEvent); source.SuiteFinished += new TestEventHandler(OnTestEvent); }
public async Task Run( IStreamEvents streamEvents, IProjectEvents projection, Action <Exception> handleException, CancellationToken ct) { var delay = Backoff.DecorrelatedJitterBackoffV2( medianFirstRetryDelay: _config.FirstRetryDelay, retryCount: _config.RetryCount); await Policy .Handle <ApertureProjectionException>() .WaitAndRetryAsync(delay, (ex, _) => handleException(ex)) .ExecuteAsync( async() => await projection.ProjectAsync(streamEvents, ct)); }
private IProjectEvents GetProjectEventsProvider() { ProjectPackage projectPackage = this.package as ProjectPackage; Debug.Assert(projectPackage != null, "Package not inherited from framework"); if(projectPackage != null) { foreach(SolutionListener listener in projectPackage.SolutionListeners) { IProjectEvents projectEvents = listener as IProjectEvents; if(projectEvents != null) { return projectEvents; } } } return null; }
public override async Task Run( IStreamEvents streamEvents, IProjectEvents projection, Action <Exception> handleException, CancellationToken ct) { while (true) { try { await base.Run(streamEvents, projection, handleException, ct); } catch (ApertureProjectionException e) { handleException(e); // TODO - Add max restarts and check max restart count (per projection) } } }
private async Task ProjectEventsAsync(IProjectEvents projection, List <IEvent> events) { var eventStream = new EventStream(events); await projection.ProjectAsync(eventStream, CancellationToken.None); }
public ApertureAgent AddProjection(IProjectEvents projection) { _projections.Add(projection); return(this); }
public virtual async Task Run( IStreamEvents streamEvents, IProjectEvents projection, Action <Exception> handleException, CancellationToken ct) => await projection.ProjectAsync(streamEvents, ct);