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 static ExternalSourceConsumer ReciveRequestIntoLace(Guid aggregateId, ExternalSourceConsumer consumer, IPersistAnEvent persistEvent)
        {
            var message = new LaceExternalSourceEventMessage(aggregateId, LaceEventSource.EntryPoint,
               PublishableLaceMessages.LaceReceivedRequestStarted,1);

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

            consumer.Consume(message);

            return consumer;
        }
        public static ExternalSourceConsumer ReturnResponseFromLace(Guid aggregateId, ExternalSourceConsumer consumer, IPersistAnEvent persistEvent)
        {
            var message = new LaceExternalSourceEventMessage(aggregateId, LaceEventSource.Initialization,
               PublishableLaceMessages.LaceProcessedRequestAndResturnedResponse,0);

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

            consumer.Consume(message);

            return consumer;
        }