public void TestSaveStarItem()
        {
            // var connection = new SqliteConnection("DataSource=:memory:");

            var factory = new StarRepositoryGatewaySqlServerFactory();

            IStarRepositoryGateway gateWay = factory.CreateSqLite();

            gateWay.StoreStarItem(new StarItemDto()
            {
                Id = Guid.NewGuid(), ItemName = "Hello"
            });
        }
        protected override void OnStartup(StartupEventArgs e)
        {
            base.OnStartup(e);

            // ==============================
            // build the overview window.
            // ==============================
            // 1) create the factories and their created classes.
            var factory1           = new StarBusinessEntityFactory();
            var starBusinessEntity = factory1.Create();

            var factory2          = new AddItemUsecaseFactory(new IdGeneratorClass());
            var addItemInteractor = factory2.Create(starBusinessEntity);

            var gatewayFactory = new StarRepositoryGatewaySqlServerFactory();
            var gateway        = gatewayFactory.CreateSqlServer();

            var saveItemUsecaseFactory = new SaveItemFactory();
            var saveItemInteractor     = saveItemUsecaseFactory.Create(starBusinessEntity, gateway);


            // 2 create the controller
            IStarOverviewController controller = new StarOverviewController(addItemInteractor, saveItemInteractor);

            // 2 create the viewmodel
            var viewModel = new StarOverviewViewModel(controller);

            // 3) create the presenter
            var presenter = new StarOverviewPresenter(viewModel);

            addItemInteractor.BindOutputBoundary(presenter);
            saveItemInteractor.BindOutputBoundary(presenter);

            var view = new MainWindow
            {
                DataContext = viewModel
            };

            view.Show();
        }