Exemplo n.º 1
0
        protected override void OnStartup(StartupEventArgs e)
        {
            AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal);

            // Setup controllers
            var controllerFactory = new AsyncControllerFactory();

            controllerFactory.Register("Home", () => new HomeController());
            controllerFactory.Register("Phone", () => new PhoneController(new InMemoryContactRepository()));
            controllerFactory.Register("Mail", () => new MailController());
            controllerFactory.Register("Settings", () => new SettingsController());

            // Setup transitions
            NavigationTransitions.Table.Add("Back", "Forward", () => new SlideTransition(SlideDirection.Back));
            NavigationTransitions.Table.Add("Forward", "Back", () => new SlideTransition(SlideDirection.Forward));
            NavigationTransitions.Table.Add("ZoomIn", "ZoomOut", () => new ZoomInTransition());
            NavigationTransitions.Table.Add("ZoomOut", "ZoomIn", () => new ZoomOutTransition());

            // Setup routes
            var routes = new ControllerRouteCatalog(controllerFactory);

            routes.MapRoute("{controller}/{action}");

            // Show the main window
            var main = new MainWindow();

            var navigation = new NavigatorFactory(routes);
            var navigator  = navigation.CreateNavigator(main.Frame);

            main.Navigator = navigator;

            main.Show();

            base.OnStartup(e);
        }
Exemplo n.º 2
0
        public ActionResult Display()
        {
            object locationIdObj, headerIdObj;

            string locationId;
            var isReportSelected = false;

            if (RouteData.Values.TryGetValue("locationID", out locationIdObj))
            {
                locationId = locationIdObj.ToString();
                isReportSelected = !string.IsNullOrEmpty(locationId);
            }

            int headerId;
            if (RouteData.Values.TryGetValue("headerID", out headerIdObj) && isReportSelected)
                headerId = int.Parse(headerIdObj.ToString());

            var userId = Settings.GetMockUserId();

            var model = new NavigatorFactory().CreateNavigatorModel(User.Identity.Name, 
                selectedLocationId: isReportSelected ? locationIdObj.ToString() : null,
                selectedHeaderId: isReportSelected ? (int?)int.Parse(headerIdObj.ToString()) : null);

            return View(model);
        }
Exemplo n.º 3
0
        protected override void OnStartup(StartupEventArgs e)
        {
            var controllers = new AsyncControllerFactory();

            controllers.Register("Wizard", () => new WizardController());

            var routes = new ControllerRouteCatalog(controllers);

            routes.MapRoute("wizard/{action}", new { controller = "Wizard" });

            var navigation = new NavigatorFactory(routes);

            var main = new MainWindow();

            navigation.ProgressListeners.Add(main);
            main.Show();

            var navigator = navigation.CreateNavigator(main.MainFrame);

            navigator.Navigate <WizardController>(x => x.Welcome());

            DispatcherUnhandledException += OnDispatcherUnhandledException;
            base.OnStartup(e);

            Magellan.Diagnostics.TraceSources.MagellanSource.Switch.Level = SourceLevels.Verbose;
        }
 public void CanCreateNavigatorForContentFrame()
 {
     var frame = new ContentControl();
     var resolver = new Mock<IRouteResolver>();
     var factory = new NavigatorFactory(resolver.Object);
     var navigator = factory.CreateNavigator(frame);
     navigator.CanGoBack.ToString();
 }
Exemplo n.º 5
0
 public void Navigate(string instructions)
 {
     foreach (char instruction in instructions)
     {
         INavigator navigator = NavigatorFactory.Create(this, instruction);
         navigator.Navigate();
     }
 }
 public void CanCreateNavigatorForINavigationService()
 {
     var resolver = new Mock<IRouteResolver>();
     var nav = new Mock<INavigationService>();
     var factory = new NavigatorFactory(resolver.Object);
     var navigator = factory.CreateNavigator(nav.Object);
     navigator.ResetHistory();
     nav.Verify(x => x.ResetHistory());
 }
Exemplo n.º 7
0
        public void CanCreateNavigatorForContentFrame()
        {
            var frame     = new ContentControl();
            var resolver  = new Mock <IRouteResolver>();
            var factory   = new NavigatorFactory(resolver.Object);
            var navigator = factory.CreateNavigator(frame);

            navigator.CanGoBack.ToString();
        }
Exemplo n.º 8
0
        public void SourceElementsNotInATreeWhenNavigatingWillThrow()
        {
            var button = new Button();

            var resolver  = new Mock <IRouteResolver>();
            var factory   = new NavigatorFactory(resolver.Object);
            var navigator = factory.GetOwningNavigator(button);

            Assert.Throws <ImpossibleNavigationRequestException>(navigator.ResetHistory);
        }
Exemplo n.º 9
0
        public void CanCreateNavigatorForINavigationService()
        {
            var resolver  = new Mock <IRouteResolver>();
            var nav       = new Mock <INavigationService>();
            var factory   = new NavigatorFactory(resolver.Object);
            var navigator = factory.CreateNavigator(nav.Object);

            navigator.ResetHistory();
            nav.Verify(x => x.ResetHistory());
        }
Exemplo n.º 10
0
 public void CanCreateNavigatorForASourceElementWhenNavigatorAlreadySet()
 {
     var oldNavigator = new Mock<INavigator>();
     var button = new Button();
     NavigationProperties.SetNavigator(button, oldNavigator.Object);
     
     var resolver = new Mock<IRouteResolver>();
     var factory = new NavigatorFactory(resolver.Object);
     var navigator = factory.GetOwningNavigator(button);
     Assert.AreEqual(navigator, oldNavigator.Object);
 }
Exemplo n.º 11
0
        public void CreatingNavigatorsForCommonUIElementsIsNotAllowed()
        {
            // Since NavigatorFactory.For() can take a ContentControl, it's possible to accidentally use it
            // when NavigatorFactory.ForOwnerOf() was intended. To help this, we throw an exception when
            // common content controls are used.
            var button = new Button();

            var resolver = new Mock <IRouteResolver>();
            var factory  = new NavigatorFactory(resolver.Object);

            Assert.Throws <ArgumentException>(() => factory.CreateNavigator(button));
        }
Exemplo n.º 12
0
        public void CanCreateNavigatorForASourceElementWhenNavigatorAlreadySet()
        {
            var oldNavigator = new Mock <INavigator>();
            var button       = new Button();

            NavigationProperties.SetNavigator(button, oldNavigator.Object);

            var resolver  = new Mock <IRouteResolver>();
            var factory   = new NavigatorFactory(resolver.Object);
            var navigator = factory.GetOwningNavigator(button);

            Assert.AreEqual(navigator, oldNavigator.Object);
        }
Exemplo n.º 13
0
        /// <summary>
        /// Navigates to a view chosen by the user.
        /// </summary>
        /// <param name="viewRegisteredName"></param>
        private void GoToView(string viewRegisteredName)
        {
            var navigator = NavigatorFactory.GetNavigator();

            var wvm = AllViews.FirstOrDefault(vm => vm.RegisteredName == viewRegisteredName);

            if (wvm != null && !wvm.CanUserNavigate)
            {
                _messagingService.ShowMessage(InfoMessages.INF_NOT_AUTORIZED_MESSAGE);
                return;
            }
            navigator.NavigateToView(viewRegisteredName);
        }
        protected override void AfterSetup()
        {
            Window.Content = Frame = new ContentControl();

            var controllerFactory = new ControllerFactory();
            controllerFactory.Register("Sample", () => new SampleController() { ActionInvoker = new DefaultActionInvoker() });

            var routes = new ControllerRouteCatalog(controllerFactory);
            routes.MapRoute("foobar/{action}", new {controller = "Sample"});

            NavigatorFactory = new NavigatorFactory(routes);
            Navigator = NavigatorFactory.CreateNavigator(Frame);
        }
Exemplo n.º 15
0
        protected override void OnStartup(StartupEventArgs e)
        {
            base.OnStartup(e);

            // Tax settings
            var taxes = new TaxEstimatorSelector();

            taxes.AddTaxRate(
                TaxPeriod.FY2009,
                new TaxEstimator(
                    new TaxBracketSelector(
                        new TaxBracket(-1, 6000M, 0, 0),
                        new TaxBracket(6000M, 35000M, 0, 0.15M),
                        new TaxBracket(35000M, 80000M, 4350, 0.30M),
                        new TaxBracket(80000M, 180000M, 17850, 0.38M),
                        new TaxBracket(180000M, decimal.MaxValue, 55850, 0.45M)
                        ),
                    new MedicareLevy(70000, 0.015M))
                );
            taxes.AddTaxRate(
                TaxPeriod.FY2010,
                new TaxEstimator(
                    new TaxBracketSelector(
                        new TaxBracket(-1, 6000M, 0, 0),
                        new TaxBracket(6000M, 37000M, 0, 0.15M),
                        new TaxBracket(37000M, 80000M, 4650, 0.30M),
                        new TaxBracket(80000M, 180000M, 17550, 0.37M),
                        new TaxBracket(180000M, decimal.MaxValue, 54550, 0.45M)
                        ),
                    new MedicareLevy(70000, 0.015M))
                );

            // Configure Magellan
            var controllerFactory = new AsyncControllerFactory();

            controllerFactory.Register("Home", () => new HomeController());
            controllerFactory.Register("Tax", () => new TaxController(taxes));

            var routes = new ControllerRouteCatalog(controllerFactory);

            routes.MapRoute("{controller}/{action}/{id}", new { controller = "Home", action = "Index", id = "" });

            var factory    = new NavigatorFactory("tax", routes);
            var mainWindow = new MainWindow(factory);

            mainWindow.MainNavigator.Navigate <HomeController>(x => x.Index());
            mainWindow.Show();
        }
Exemplo n.º 16
0
        public void CanCreateNavigatorForASourceElementWhenInATree()
        {
            var frame = new Frame();
            var button = new Button();
            frame.Content = button;

            var window = new TestWindow(frame);
            window.Show();
            window.ProcessEvents();

            var resolver = new Mock<IRouteResolver>();
            var factory = new NavigatorFactory(resolver.Object);
            var navigator = factory.GetOwningNavigator(button);
            navigator.ResetHistory();

            window.Close();
        }
Exemplo n.º 17
0
        protected override void AfterSetup()
        {
            Window.Content = Frame = new ContentControl();

            var controllerFactory = new ControllerFactory();

            controllerFactory.Register("Sample", () => new SampleController()
            {
                ActionInvoker = new DefaultActionInvoker()
            });

            var routes = new ControllerRouteCatalog(controllerFactory);

            routes.MapRoute("foobar/{action}", new { controller = "Sample" });

            NavigatorFactory = new NavigatorFactory(routes);
            Navigator        = NavigatorFactory.CreateNavigator(Frame);
        }
Exemplo n.º 18
0
        public void CanCreateNavigatorForASourceElementWhenInATree()
        {
            var frame  = new Frame();
            var button = new Button();

            frame.Content = button;

            var window = new TestWindow(frame);

            window.Show();
            window.ProcessEvents();

            var resolver  = new Mock <IRouteResolver>();
            var factory   = new NavigatorFactory(resolver.Object);
            var navigator = factory.GetOwningNavigator(button);

            navigator.ResetHistory();

            window.Close();
        }
Exemplo n.º 19
0
        /// <summary>
        /// Initializes an instance of <see cref="ApplicationViewModel"/>.
        /// </summary>
        /// <param name="user">The view model that wraps the logged in user model. </param>
        /// <param name="transactionRepository">An instance of <see cref="ITransactionRepository"/> implementation.</param>
        /// <param name="userRepository"> >An instance of <see cref="IUserRepository"/> implementation.</param>
        /// <param name="messagingService">An implementation of <see cref="IMessagingService"/> </param>
        public ApplicationViewModel(UserViewModel user, ITransactionRepository transactionRepository, IUserRepository userRepository, IMessagingService messagingService)
            : base("ApplicationViewModel")
        {
            LoggedInUser = user;
            bool isUserAdmin = true;//user.Role == UserRole.Admin;

            //Configure the navigator
            Navigator = NavigatorFactory.GetNavigator();
            var viewList = new List <WorkspaceViewModelBase>()
            {
                new AllTransactionViewModel(isUserAdmin, Constants.ALLEXPENSES_VIEW_REGERED_NAME, userRepository, transactionRepository, messagingService),
                new ManageViewModel(Constants.MANAGE_VIEW_REGERED_NAME, userRepository, messagingService, isUserAdmin)
            };

            viewList.ForEach(wvm => Navigator.AddView(wvm));
            Navigator.AddHomeView(new HomeViewModel(viewList, Constants.HOME_VIEW_REGERED_NAME, messagingService));
            Navigator.PropertyChanged += NavigatorPropertyChanged;
            Navigator.NavigateToHome();
            //Initialie the commands
            NavigateBackCommand = new RelayCommand(Navigator.NavigateBack);
        }
Exemplo n.º 20
0
        protected override void OnStartup(StartupEventArgs e)
        {
            base.OnStartup(e);

            var views = new ViewModelFactory();

            views.Register("Search", () => new SearchView(), () => new SearchViewModel(new SearchService()));
            views.Register("Details", () => new DetailsView(), () => new DetailsViewModel(new DetailsService()));

            var routes = new ViewModelRouteCatalog(views);

            routes.MapRoute("views/details/{id}", new { viewModel = "Details" });
            routes.MapRoute("views/{viewModel}");

            var shell      = new ShellWindow();
            var navigation = new NavigatorFactory(routes);
            var navigator  = navigation.CreateNavigator(shell.MainContent);

            shell.Show();

            navigator.Navigate("views/Search");
        }
Exemplo n.º 21
0
 public INavigator <TSource> Navigate <TSource>(TSource pageObject) where TSource : PageObject
 {
     // Retourne une Navigation typée adaptée au Page Object source
     return(NavigatorFactory <TSource> .Create(pageObject));
 }
Exemplo n.º 22
0
        public void SourceElementsNotInATreeWhenNavigatingWillThrow()
        {
            var button = new Button();

            var resolver = new Mock<IRouteResolver>();
            var factory = new NavigatorFactory(resolver.Object);
            var navigator = factory.GetOwningNavigator(button);

            Assert.Throws<ImpossibleNavigationRequestException>(navigator.ResetHistory);
        }
Exemplo n.º 23
0
        public void CreatingNavigatorsForCommonUIElementsIsNotAllowed()
        {
            // Since NavigatorFactory.For() can take a ContentControl, it's possible to accidentally use it
            // when NavigatorFactory.ForOwnerOf() was intended. To help this, we throw an exception when 
            // common content controls are used.
            var button = new Button();

            var resolver = new Mock<IRouteResolver>();
            var factory = new NavigatorFactory(resolver.Object);
            Assert.Throws<ArgumentException>(() => factory.CreateNavigator(button));
        }