private void StartConsumingExternalSourceEventsAsync()
        {
            _aggregateId = Guid.NewGuid();

            _consumer = FakeExternalSourceEvents.ReceiveRequestInLace(_aggregateId, _consumer, _persistAnEvent);
            _externalSourceExecutedConsumer = FakeExternalSourceEvents.StartCallingIvid(_aggregateId, _externalSourceExecutedConsumer, _persistAnEvent);

            Thread.Sleep(5000);

            _externalSourceExecutedConsumer = FakeExternalSourceEvents.EndCallingIvid(_aggregateId, _externalSourceExecutedConsumer, _persistAnEvent);
            Thread.Sleep(1000);

            _externalSourceExecutedConsumer = FakeExternalSourceEvents.StartCallingIvidTileHolder(_aggregateId, _externalSourceExecutedConsumer, _persistAnEvent);
            Thread.Sleep(5000);
            _externalSourceExecutedConsumer = FakeExternalSourceEvents.EndCallingIvidTitleHolder(_aggregateId, _externalSourceExecutedConsumer, _persistAnEvent);

            Thread.Sleep(1000);

            _externalSourceExecutedConsumer = FakeExternalSourceEvents.StartCallingRgtVin(_aggregateId, _externalSourceExecutedConsumer, _persistAnEvent);
            Thread.Sleep(5000);
            _externalSourceExecutedConsumer = FakeExternalSourceEvents.EndCallingRgtVin(_aggregateId, _externalSourceExecutedConsumer, _persistAnEvent);

            Thread.Sleep(1000);

            _externalSourceExecutedConsumer = FakeExternalSourceEvents.StartCallingAudatex(_aggregateId, _externalSourceExecutedConsumer, _persistAnEvent);
            Thread.Sleep(5000);
            _externalSourceExecutedConsumer = FakeExternalSourceEvents.EndCallingAudatex(_aggregateId, _externalSourceExecutedConsumer, _persistAnEvent);

            Thread.Sleep(1000);

            _consumer = FakeExternalSourceEvents.ReturnResponseFromLace(_aggregateId, _consumer, _persistAnEvent);

        }
        public override void Observe()
        {
            _message = new EventMessagesBuilder(_aggregateId).ForIvidStartCallingExternalSourceEvent();
            _consumer = new ExternalSourceExecutedConsumer(_persistEvent);
            _consumer.Consume(_message);

            _streamName = string.Format("{0}-{1}", _message.Category, _aggregateId.ToString("N"));
        }
        public static ExternalSourceExecutedConsumer RgtVinSourceSourceCallEnded(Guid aggregateId, ExternalSourceExecutedConsumer consumer, IPersistAnEvent persistEvent)
        {
            var message = new LaceExternalSourceExecutionEventMessage(aggregateId, LaceEventSource.RgtVin,
                PublishableLaceMessages.EndCallingExternalSource,2);

            if (consumer == null)
                consumer = new ExternalSourceExecutedConsumer(persistEvent);

            consumer.Consume(message);

            return consumer;
        }
        public static ExternalSourceExecutedConsumer IvidTitleHolderCallStarting(Guid aggregateId, ExternalSourceExecutedConsumer consumer, IPersistAnEvent persistEvent)
        {
            var message = new LaceExternalSourceExecutionEventMessage(aggregateId, LaceEventSource.IvidTitleHolder,
                PublishableLaceMessages.StartCallingExternalSource,1);

            if (consumer == null)
                consumer = new ExternalSourceExecutedConsumer(persistEvent);

            consumer.Consume(message);

            return consumer;
        }
        public void ForStartingAndEndingCallToIvid()
        {
            _aggregateId = Guid.NewGuid();

          //  _consumer = FakeExternalSourceEvents.ReceiveRequestInLace(_aggregateId, _consumer, _persistAnEvent);
            _externalSourceExecutedConsumer = FakeExternalSourceEvents.StartCallingIvid(_aggregateId,
                _externalSourceExecutedConsumer, _persistAnEvent);

            Thread.Sleep(100);

            _externalSourceExecutedConsumer = FakeExternalSourceEvents.EndCallingIvid(_aggregateId,
                _externalSourceExecutedConsumer, _persistAnEvent);
            Thread.Sleep(1000);
        }