public SolitaireContext()
        {
            string storePath = Path.Combine(Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location), "solitaire.db");

            Type tEvent     = typeof(IEvent);
            Type tTO        = typeof(ITransferObject);
            var  allTypes   = System.Reflection.Assembly.GetExecutingAssembly().GetTypes();
            var  knownTypes = allTypes
                              .Where(t => !t.IsAbstract)
                              .Where(t => t.IsClass || t.IsValueType)
                              .Where(t => tEvent.IsAssignableFrom(t) || tTO.IsAssignableFrom(t))
                              .Where(t => t.Namespace.StartsWith($"{nameof(VnodeTest)}.{nameof(BC)}.{nameof(Solitaire)}")).ToArray();


            JSONFileEventStore store = new JSONFileEventStore(storePath, knownTypes);

            Repository = new Repository(store);
            var bus = MessageBus.Instance;

            SolitaireProjection = new SolitaireProjection(store, bus);
            SolitaireProjection.Init();
            SolitaireHandler = new BC.Solitaire.Solitaire.Handler(Repository, bus);
        }
 public SolitaireController(SolitaireProjection solitaireProjection, AccountProjection accountProjection, AccountID accountID)
 {
     SolitaireProjection = solitaireProjection;
     AccountProjection   = accountProjection;
     AccountID           = accountID;
 }