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); }
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); }
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(); }
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()); }
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(); }
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); }
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()); }
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); }
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)); }
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); }
/// <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); }
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(); }
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(); }
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); }
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(); }
/// <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); }
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"); }
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)); }
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); }
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)); }