private static ViewLocator SetupViewLocator()
        {
            var viewLocator = new ViewLocator();

            viewLocator.RegisterService(Selector <DepositResult>, obj => new DepositView((DepositResult)obj));
            viewLocator.RegisterService(Selector <LoginFailed>, obj => new LoginFailedView((LoginFailed)obj));
            viewLocator.RegisterService(Selector <UserLoggedIn>, obj => new UserLoggedInView((UserLoggedIn)obj));
            viewLocator.RegisterService(Selector <UserLoggedOut>, obj => new UserLoggedOutView((UserLoggedOut)obj));
            viewLocator.RegisterService(Selector <UserRegistered>, obj => new UserRegisteredView((UserRegistered)obj));

            viewLocator.RegisterService(PurchaseSelector <FailedPurchase>, obj => new FailedPurchaseView());
            viewLocator.RegisterService(PurchaseSelector <NotEnoughtMoney>, obj => new NotEnoughMoneyView(Cast <NotEnoughtMoney>(obj)));
            viewLocator.RegisterService(PurchaseSelector <NotSignedIn>, obj => new NotSignedInView());
            viewLocator.RegisterService(PurchaseSelector <ProductNotFound>, obj => new ProductNotFoundView(Cast <ProductNotFound>(obj)));
            viewLocator.RegisterService(PurchaseSelector <Receipt>, obj => new ReceiptView(Cast <Receipt>(obj)));
            return(viewLocator);
        }
Example #2
0
        private static ViewLocator SetupViewLocator()
        {
            var viewLocator = new ViewLocator();

            viewLocator.RegisterService(
                Selector <InvalidIdResult>,
                obj => new InvalidIdView((InvalidIdResult)obj));

            viewLocator.RegisterService(
                Selector <InvalidDateResult>,
                obj => new InvalidDateView((InvalidDateResult)obj));

            viewLocator.RegisterService(
                Selector <EmptyResult>,
                obj => new EmptyView());

            viewLocator.RegisterService(
                Selector <InstrumentResult>,
                obj => new InstrumentView((InstrumentResult)obj));

            viewLocator.RegisterService(
                Selector <NoResult>,
                obj => new NoInstrumentView());

            viewLocator.RegisterService(
                Selector <PositionResult>,
                obj => new PositionView((PositionResult)obj));

            return(viewLocator);
        }
Example #3
0
        static void Main(string[] args)
        {
            IPurchaseReportFactory reportFactory = new PurchaseReportFactory();

            ViewLocator viewLocator = new ViewLocator();

            viewLocator.RegisterService(Selector <DepositResult>, obj => new DepositView((DepositResult)obj));
            viewLocator.RegisterService(Selector <LoginFailed>, obj => new LoginFailedView((LoginFailed)obj));
            viewLocator.RegisterService(Selector <UserLoggedIn>, obj => new UserLoggedInView((UserLoggedIn)obj));
            viewLocator.RegisterService(Selector <UserLoggedOut>, obj => new UserLoggedOutView((UserLoggedOut)obj));
            viewLocator.RegisterService(Selector <UserRegistered>, obj => new UserRegisteredView((UserRegistered)obj));

            viewLocator.RegisterService(PurchaseSelector <FailedPurchase>, obj => new FailedPurchaseView());
            viewLocator.RegisterService(PurchaseSelector <NotEnoughMoney>, obj => new NotEnoughMoneyView(Cast <NotEnoughMoney>(obj)));
            viewLocator.RegisterService(PurchaseSelector <NotRegistered>, obj => new NotRegisteredView(Cast <NotRegistered>(obj)));
            viewLocator.RegisterService(PurchaseSelector <NotSignedIn>, obj => new NotSignedInView());
            viewLocator.RegisterService(PurchaseSelector <ProductNotFound>, obj => new ProductNotFoundView(Cast <ProductNotFound>(obj)));
            viewLocator.RegisterService(PurchaseSelector <Receipt>, obj => new ReceiptView(Cast <Receipt>(obj)));

            UserInterface ui =
                new UserInterface(
                    new ApplicationServices(
                        new DomainServices(
                            new UserRepository(),
                            new ProductRepository(),
                            reportFactory),
                        reportFactory),
                    viewLocator);

            while (ui.ReadCommand())
            {
                ui.ExecuteCommand();
            }
        }