private void StartProjection(IProjection projection, Action <IProjection> onProjectionLiveProcessingStarted) { log.Info($"PROJECTION STARTING - {projection.Id}"); try { var checkpoint = positionStore.GetLatest(projection.Id); EventStoreConnection.SubscribeToStreamFrom("$ce-BankAccount", 0, CatchUpSubscriptionSettings.Default, EventAppeared(projection), LiveProcessingStarted(projection, onProjectionLiveProcessingStarted)); } catch (Exception exception) { throw new ProjectionStartFailedException($"Starting projection {projection.Id} failed", exception); } log.Info($"PROJECTION STARTED - {projection.Id}"); }