Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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));
        }
Exemplo n.º 3
0
        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;
        }
Exemplo n.º 4
0
 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)
         }
     }
 }
Exemplo n.º 5
0
        private async Task ProjectEventsAsync(IProjectEvents projection, List <IEvent> events)
        {
            var eventStream = new EventStream(events);

            await projection.ProjectAsync(eventStream, CancellationToken.None);
        }
Exemplo n.º 6
0
        public ApertureAgent AddProjection(IProjectEvents projection)
        {
            _projections.Add(projection);

            return(this);
        }
Exemplo n.º 7
0
 public virtual async Task Run(
     IStreamEvents streamEvents,
     IProjectEvents projection,
     Action <Exception> handleException,
     CancellationToken ct) =>
 await projection.ProjectAsync(streamEvents, ct);