Example #1
0
        /// <summary>
        /// Handles the NavigationFailed event of the NavigationService.
        ///
        /// Developers you can use this event handler to display all your navigation failures to the user.
        /// This is very helpful when your application initiates navigation from XAML.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="Microsoft.Practices.Prism.Regions.RegionNavigationFailedEventArgs"/> instance containing the event data.</param>
        void NavigationService_NavigationFailed(object sender, RegionNavigationFailedEventArgs e)
        {
            this.Logger.Log(Global.RegionNavigationFailed + e.Uri.ToString());

            // Demo only. Use a dialog service or interaction request instead of a message box
            MessageBox.Show(String.Format(Global.NavigationFailedMessage_FormatString, e.Uri, e.Error.Message), Global.NavigationError, MessageBoxButton.OK, MessageBoxImage.Error);
        }
Example #2
0
        /// <summary>
        /// Handles the NavigationFailed event of the NavigationService.
        ///
        /// Developers you can use this event handler as a central place to
        /// display a navigation failed message.  This handler can come in handy
        /// when initiating navigation from XAML where no call back is available.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="Microsoft.Practices.Prism.Regions.RegionNavigationFailedEventArgs"/> instance containing the event data.</param>
        private void NavigationService_NavigationFailed(object sender, RegionNavigationFailedEventArgs e)
        {
            //this.Logger.Log(String.Format(Constants.Global.NavigationFailedMessage_FormatString, e.Uri.ToString(), e.Error.Message));

            //// demo only. In a real-world application, use a dialog service or interaction request to display messages.
            //MessageBox.Show(String.Format(Constants.Global.NavigationFailedMessage_FormatString, e.Uri.ToString(), e.Error.Message),
            //    Constants.Global.NavigationFailed, MessageBoxButton.OK, MessageBoxImage.Error);

            throw e.Error;
        }
        public void WhenNavigationFailsBecauseTheContentViewCannotBeRetrieved_ThenNavigationFailedIsRaised()
        {
            // Prepare
            var region = new Region {
                Name = "RegionName"
            };

            var serviceLocatorMock = new Mock <IServiceLocator>();

            serviceLocatorMock
            .Setup(x => x.GetInstance <IRegionNavigationJournalEntry>())
            .Returns(new RegionNavigationJournalEntry());

            var contentLoaderMock = new Mock <IRegionNavigationContentLoader>();

            contentLoaderMock
            .Setup(cl => cl.LoadContent(region, It.IsAny <NavigationContext>()))
            .Throws <InvalidOperationException>();

            var serviceLocator = serviceLocatorMock.Object;
            var contentLoader  = contentLoaderMock.Object;
            var journal        = new Mock <IRegionNavigationJournal>().Object;

            var target = new RegionNavigationService(serviceLocator, contentLoader, journal);

            target.Region = region;

            RegionNavigationFailedEventArgs eventArgs = null;

            target.NavigationFailed += delegate(object sender, RegionNavigationFailedEventArgs e)
            {
                if (sender == target)
                {
                    eventArgs = e;
                }
            };

            // Act
            bool?isNavigationSuccessful = null;

            target.RequestNavigate(new Uri("invalid", UriKind.Relative), nr => isNavigationSuccessful = nr.Result);

            // Verify
            Assert.IsFalse(isNavigationSuccessful.Value);
            Assert.IsNotNull(eventArgs);
            Assert.IsNotNull(eventArgs.Error);
        }
        public void WhenNavigationFailsBecauseDataContextForActiveViewRejectsIt_ThenNavigationFailedIsRaised()
        {
            // Prepare
            var region = new Region {
                Name = "RegionName"
            };

            var viewModel1Mock = new Mock <IConfirmNavigationRequest>();

            viewModel1Mock
            .Setup(ina => ina.ConfirmNavigationRequest(It.IsAny <NavigationContext>(), It.IsAny <Action <bool> >()))
            .Callback <NavigationContext, Action <bool> >((nc, c) => c(false))
            .Verifiable();


            var view1Mock = new Mock <FrameworkElement>();
            var view1     = view1Mock.Object;

            view1.DataContext = viewModel1Mock.Object;

            var view2 = new object();

            region.Add(view1);
            region.Add(view2);

            region.Activate(view1);

            var navigationUri = new Uri(view2.GetType().Name, UriKind.Relative);

            var serviceLocatorMock = new Mock <IServiceLocator>();

            serviceLocatorMock
            .Setup(x => x.GetInstance <IRegionNavigationJournalEntry>())
            .Returns(new RegionNavigationJournalEntry());

            var contentLoaderMock = new Mock <IRegionNavigationContentLoader>();

            contentLoaderMock
            .Setup(cl => cl.LoadContent(region, It.IsAny <NavigationContext>()))
            .Returns(view2);

            var serviceLocator = serviceLocatorMock.Object;
            var contentLoader  = contentLoaderMock.Object;
            var journal        = new Mock <IRegionNavigationJournal>().Object;

            var target = new RegionNavigationService(serviceLocator, contentLoader, journal);

            target.Region = region;

            RegionNavigationFailedEventArgs eventArgs = null;

            target.NavigationFailed += delegate(object sender, RegionNavigationFailedEventArgs e)
            {
                if (sender == target)
                {
                    eventArgs = e;
                }
            };

            // Act
            bool?isNavigationSuccessful = null;

            target.RequestNavigate(navigationUri, nr => isNavigationSuccessful = nr.Result);

            // Verify
            viewModel1Mock.VerifyAll();
            Assert.IsFalse(isNavigationSuccessful.Value);
            Assert.IsNotNull(eventArgs);
            Assert.IsNull(eventArgs.Error);
        }
 protected virtual void RegionOneNavigationServiceOnNavigationFailed(object sender, RegionNavigationFailedEventArgs e)
 {
 }
Example #6
0
 private void OnNavigationFailed(object sender, RegionNavigationFailedEventArgs e)
 {
     throw e.Error;
 }
Example #7
0
 void NavigationService_NavigationFailed(object sender, RegionNavigationFailedEventArgs e)
 {
     MessageBox.Show(e.Error.ToString());
 }
Example #8
0
 private void OnNavigationFailed(object sender, RegionNavigationFailedEventArgs e)
 {
     this.ShowMessageAsync("Navigation Service", e.Error.Message ?? "Navigation failed.");
 }
 private void NavigationService_NavigationFailed(object sender, RegionNavigationFailedEventArgs e)
 {
     System.Windows.MessageBox.Show(e.Error.Message, "NavigationService_NavigationFailed");
     System.Diagnostics.Debug.WriteLine("WindowNavigationService.NavigationFailed : " + e.Error.Message);
 }
 private void NavigationService_NavigationFailed1(object sender, RegionNavigationFailedEventArgs e)
 {
 }
        public void WhenNavigationFailsBecauseBindingContextForActiveViewRejectsIt_ThenNavigationFailedIsRaised()
        {
            // Prepare
            var region = new Region {
                Name = "RegionName"
            };

            var viewModel1Mock = new Mock <IConfirmRegionNavigationRequest>();

            viewModel1Mock
            .Setup(ina => ina.ConfirmNavigationRequest(It.IsAny <INavigationContext>(), It.IsAny <Action <bool> >()))
            .Callback <INavigationContext, Action <bool> >((nc, c) => c(false))
            .Verifiable();

            var view1Mock = new Mock <View>();
            var view1     = view1Mock.Object;

            view1.BindingContext = viewModel1Mock.Object;

            var view2 = new StackLayout();

            region.Add(view1);
            region.Add(view2);

            region.Activate(view1);

            var navigationUri = new Uri(view2.GetType().Name, UriKind.Relative);

            var containerMock = new Mock <IContainerExtension>();

            containerMock.Setup(x => x.Resolve(typeof(IRegionNavigationJournalEntry))).Returns(new RegionNavigationJournalEntry());

            var contentLoaderMock = new Mock <IRegionNavigationContentLoader>();

            contentLoaderMock
            .Setup(cl => cl.LoadContent(region, It.IsAny <INavigationContext>()))
            .Returns(view2);

            var container     = containerMock.Object;
            var contentLoader = contentLoaderMock.Object;
            var journal       = Mock.Of <IRegionNavigationJournal>();

            var target = new RegionNavigationService(container, contentLoader, journal)
            {
                Region = region
            };

            RegionNavigationFailedEventArgs eventArgs = null;

            target.NavigationFailed += delegate(object sender, RegionNavigationFailedEventArgs e)
            {
                if (sender == target)
                {
                    eventArgs = e;
                }
            };

            // Act
            bool?isNavigationSuccessful = null;

            target.RequestNavigate(navigationUri, nr => isNavigationSuccessful = nr.Result);

            // Verify
            viewModel1Mock.VerifyAll();
            Assert.False(isNavigationSuccessful.Value);
            Assert.NotNull(eventArgs);
            Assert.Null(eventArgs.Error);
        }
Example #12
0
 void NavigationService_NavigationFailed(object sender, RegionNavigationFailedEventArgs e)
 {
     //throw new NotImplementedException();
 }