Represents navigation instructions that can be serialized and performed at a later time.
 public bool OnFilterNavigation(NavigationRequest request)
 {
     //Console.WriteLine("OnFilterNavigation:\t" + request.Url);
     //Console.WriteLine("OnFilterNavigation:\t" + request.Url.Scheme);
     //if (request.Url.Scheme != "asset") return true;
     return false;
 }
Esempio n. 2
0
        void INavigationHandler.ProcessRequest(NavigationRequest request, Action<bool> requestCallback)
        {
            Debug.Assert(request != null, "request");
            Debug.Assert(requestCallback != null, "requestCallback");

            NavigatingCancelInfo info = new NavigatingCancelInfo(request);

            if (!info.Cancel)
            {
                // change state
                Channel<NavigatingCancelInfo>.Public.OnNext(info);

                // Check if the navigation needs to be canceled
                if (!info.Cancel)
                {
                    requestCallback(true);
                }
                else
                {
                    requestCallback(false);
                }
            }
            else
            {
                requestCallback(false);
            }
        }
Esempio n. 3
0
        protected virtual NavigationTransitionInfo?GetNavigationTransition(NavigationRequest args)
        {
            if (!args.Animated)
            {
                return(null);
            }

            // GoBack just plays the animation in reverse so we always just return the same animation
            return(new SlideNavigationTransitionInfo()
            {
                Effect = SlideNavigationTransitionEffect.FromRight
            });
        }
Esempio n. 4
0
 public override void Home(object parameter = null)
 {
     // User is authenticated
     if (this.ParentFrame.Content == null || !(this.ParentFrame.Content is ShellView))
     {
         NavigationRequest navParam = parameter as NavigationRequest ?? new NavigationRequest(typeof(MainView), parameter);
         this.ParentFrame.Navigate(typeof(ShellView), this.SerializeParameter(navParam));
         this.ClearBackstack();
     }
     else
     {
         this.Frame.Navigate(typeof(MainView), this.SerializeParameter(parameter));
     }
 }
Esempio n. 5
0
        protected virtual void OnNavigateForward()
        {
            if (!CanNavigateForward)
            {
                return;
            }

            // we get the request
            var _forwardPageInfo = _forwardStack.Peek();
            var _request         = new NavigationRequest(_forwardPageInfo.Url, _forwardPageInfo.State, NavigateMode.Forward);

            // and we navigate, if the thing is not cancelled then
            // NOTE: Currently the navigate is synchronous so their are implications
            Navigation.NavigationService.Navigate(_request, this);
        }
        public void Navigate()
        {
            var navigationRequest    = new NavigationRequest();
            var navigationActionMock = new NavigationBehaviorMock <ContentPage> {
                Request = navigationRequest
            };

            navigationRequest.RaiseAsync();

            Assert.Equal(navigationRequest, navigationActionMock.Request);

            Assert.True(navigationActionMock.Navigated);
            Assert.Equal(typeof(object), navigationActionMock.ParameterType);
            Assert.Null(navigationActionMock.Parameter);
        }
Esempio n. 7
0
    public void RequestNavigation(NavEntity entity, Vector3 targetPos)
    {
        NavigationRequest req = new NavigationRequest(entity, targetPos);

        switch (req.entity.navEntityType)
        {
        case ENavEntityType.Group:
            _groupPipeline.AddRequest(req);
            break;

        case ENavEntityType.Individual:
            _indiviualPipeline.AddRequest(req);
            break;
        }
    }
Esempio n. 8
0
        // Note that this is called on the I/O thread.
        bool IResourceInterceptor.OnFilterNavigation(NavigationRequest request)
        {
            bool isGoogleHost = request.Url.Host.EndsWith("google.com") ||
                                request.Url.Host.EndsWith("ggpht.com") ||
                                request.Url.Host.EndsWith("gstatic.com") ||
                                request.Url.Host.EndsWith("googleapis.com") ||
                                request.Url.Host.EndsWith("googleusercontent.com");

            // Uncomment the following line, to block (almost) everything
            // outside Google. This will cancel any attempt to navigate away
            // from Google sites.
            // return !isGoogleHost;

            return(false);
        }
Esempio n. 9
0
        public RequestParams GetWhere(NavigationRequest request)
        {
            if (request == null)
            {
                return(null);
            }
            RequestParams rp = new RequestParams();

            //追加查询参数
            if (!string.IsNullOrEmpty(request.ParentId))
            {
                rp.Params.Add(new Params()
                {
                    key = "ParentId", value = request.ParentId, searchType = EnumBase.SearchType.Eq
                });
            }
            if (request.Level.HasValue)
            {
                rp.Params.Add(new Params()
                {
                    key = "Level", value = request.Level, searchType = EnumBase.SearchType.Eq
                });
            }
            //添加排序(多个排序条件,可以额外添加)
            if (!string.IsNullOrEmpty(request.sortKey))
            {
                rp.Sort.Add(new Sort()
                {
                    key = request.sortKey, searchType = (EnumBase.OrderType)request.sortType
                });
            }
            else
            {
                rp.Sort = null;
            }
            //添加分页
            if (request.pageIndex > 0)
            {
                rp.Paging.pageIndex = request.pageIndex;
                rp.Paging.pageSize  = request.pageSize;
            }
            else
            {
                rp.Paging = null;
            }
            return(rp);
        }
Esempio n. 10
0
        public JsonResult List(NavigationRequest request)
        {
            request.sortKey  = "Sort";
            request.sortType = 0;
            request.Level    = 1;
            var list = _NavigationIService.GetList(request);

            List <Navigation> nav_list = new List <Navigation>();

            foreach (var item in list)
            {
                nav_list.Add(item);
                request.Level    = 2;
                request.ParentId = item.Id;
                var sub_list = _NavigationIService.GetList(request);
                nav_list.AddRange(sub_list);
            }



            var dto_list = _IMapper.Map <List <NavigationDto> >(nav_list);

            foreach (var item in dto_list)
            {
                item.DictList = GetDictRole();
                var nr_list = _NavigationRoleIService.GetList(m => m.NId == item.Id && m.Status == 1, null, null).ToList();
                foreach (var it in item.DictList)
                {
                    if (nr_list.Find(m => m.DId == it.Id) != null)
                    {
                        it.Status = 1;
                    }
                    else
                    {
                        it.Status = 0;
                    }
                }
            }

            Json reponse = new Json();

            reponse.code  = 200;
            reponse.total = nav_list.Count;
            reponse.data  = dto_list;
            return(Json(reponse));
        }
        public void Navigate_WithParameter()
        {
            var navigationRequest    = new NavigationRequest <string>();
            var navigationActionMock = new NavigationBehaviorMock <ContentPage> {
                Request = navigationRequest
            };

            var parameter = "Hello, Parameter!";

            navigationRequest.RaiseAsync(parameter);

            Assert.Equal(navigationRequest, navigationActionMock.Request);

            Assert.True(navigationActionMock.Navigated);
            Assert.Equal(typeof(string), navigationActionMock.ParameterType);
            Assert.Equal(parameter, navigationActionMock.Parameter);
        }
        public async void NavigationRequestPropertyChanged_ToNull()
        {
            var navigationRequest    = new NavigationRequest();
            var navigationActionMock = new NavigationBehaviorMock <ContentPage> {
                Request = navigationRequest
            };

            navigationActionMock.Request = null;
            Assert.Null(navigationActionMock.Request);

            await Assert.ThrowsAsync <InvalidOperationException>(() => navigationRequest.RaiseAsync());


            Assert.False(navigationActionMock.Navigated);
            Assert.Null(navigationActionMock.ParameterType);
            Assert.Null(navigationActionMock.Parameter);
        }
        public override void ExecuteResult(ControllerContext context)
        {
            Guard.ArgumentNotNull(context, "context");

            var _request = new NavigationRequest(_url, _requestParameters, _siteArea, NavigateMode.New);

            if (_handler != null)
            {
                NavigationService.Navigate(_request, _handler);
            }
            else if (context.Request.Handler != null)
            {
                NavigationService.Navigate(_request, context.Request.Handler);
            }
            else
            {
                NavigationService.Navigate(_request);
            }
        }
Esempio n. 14
0
        /// <summary>
        /// This is called on <see cref="Frame.NavigationStopped"/>.
        /// We use this handler to remove requests cancelled by <see cref="NavigatingCancelEventArgs.Cancel"/>.
        /// </summary>
        private void OnFrameNavigationStopped(object sender, NavigationEventArgs e)
        {
            var request = new NavigationRequest(_frame, e);

            if (TryGetFirst(_frameToControllerRequests, out var frameToControllerRequest) && NavigationRequest.Correlates(request, frameToControllerRequest))
            {
                if (this.Log().IsEnabled(LogLevel.Debug))
                {
                    this.Log().Debug("Aborted navigation request because the Frame.Navigating event was cancelled.");
                }

                _frameToControllerRequests.RemoveFirst();
            }
            else
            {
                // We shouldn't get here because the frame events are synchronous.
                this.Log().Error($"Can't process OnFrameNavigationStopped because the request in queue doesn't match the current request.");
            }
        }
        protected virtual void OnProcessRequest(NavigationRequest request, Action <bool> requestCallback)
        {
            Guard.ArgumentNotNull(request, "request");
            Guard.ArgumentNotNull(requestCallback, "requestCallback");

            // if there is a pending request
            if (ActiveNavigationRequest != null)
            {
                NavigationService.CancelNavigation(ActiveNavigationRequest);
                ActiveNavigationRequest = null;
            }

            // we say we are navigating
            var _cancelEventArgs = new NavigatingCancelEventArgs(this, request);

            OnNavigating(_cancelEventArgs);

            // if not cancelled, then we go to our base class to check against the ISupportNavigation
            if (!_cancelEventArgs.Cancel)
            {
                NavigationService.ProcessNavigationLifecycle(request, this.CurrentNavigationLifecycleSupporter, this.CurrentNavigationViewLifecycleSupporter,
                                                             (b) =>
                {
                    if (b)
                    {
                        ActiveNavigationRequest = request;
                    }
                    else
                    {
                        requestCallback(b);
                    }
                },
                                                             () =>
                {
                    TransitionToNavigationState(Controls.NavigationState.Navigating);
                    requestCallback(true);
                });
            }
            else
            {
                requestCallback(false);
            }
        }
        public JsonResult ListTree(NavigationRequest request)
        {
            request.sortKey  = "Sort";
            request.sortType = 0;
            var          list       = _NavigationIService.GetList(request);
            var          count      = _NavigationIService.GetCount(request);
            List <zTree> list_ztree = new List <zTree>();
            zTree        ztree      = new zTree()
            {
                id          = "0",
                pId         = "#",
                name        = "系统",
                noEditBtn   = true,
                noRemoveBtn = true,
                open        = true
            };

            list_ztree.Add(ztree);
            foreach (var item in list)
            {
                ztree = new zTree()
                {
                    id   = item.Id,
                    pId  = item.ParentId ?? "0",
                    name = item.Name,
                    open = true
                };
                if (item.IsSys == 1)
                {
                    ztree.noEditBtn   = true;
                    ztree.noRemoveBtn = true;
                }
                list_ztree.Add(ztree);
            }

            Json reponse = new Json();

            reponse.code  = 200;
            reponse.total = count;
            reponse.data  = list_ztree;
            return(Json(reponse));
        }
Esempio n. 17
0
        public virtual void NavigateTo(NavigationRequest args)
        {
            IReadOnlyList <IView> newPageStack = new List <IView>(args.NavigationStack);
            var  previousNavigationStack       = NavigationStack;
            var  previousNavigationStackCount  = previousNavigationStack.Count;
            bool initialNavigation             = NavigationStack.Count == 0;

            // User has modified navigation stack but not the currently visible page
            // So we just sync the elements in the stack
            if (!initialNavigation &&
                newPageStack[newPageStack.Count - 1] ==
                previousNavigationStack[previousNavigationStackCount - 1])
            {
                SyncBackStackToNavigationStack(newPageStack);
                NavigationStack = newPageStack;
                FireNavigationFinished();
                return;
            }

            NavigationTransitionInfo?transition = GetNavigationTransition(args);

            _currentPage = newPageStack[newPageStack.Count - 1];

            _ = _currentPage ?? throw new InvalidOperationException("Navigatoin Request Contains Null Elements");
            if (previousNavigationStack.Count < args.NavigationStack.Count)
            {
                Type destinationPageType = GetDestinationPageType();
                NavigationStack = newPageStack;
                NavigationFrame.Navigate(destinationPageType, null, transition);
            }
            else if (previousNavigationStack.Count == args.NavigationStack.Count)
            {
                Type destinationPageType = GetDestinationPageType();
                NavigationStack = newPageStack;
                NavigationFrame.Navigate(destinationPageType, null, transition);
            }
            else
            {
                NavigationStack = newPageStack;
                NavigationFrame.GoBack(transition);
            }
        }
Esempio n. 18
0
        public virtual void RequestNavigation(NavigationRequest e)
        {
            if (_navGraph == null)
            {
                var navGraphNavigator =
                    (NavGraphNavigator)NavHost
                    .NavController
                    .NavigatorProvider
                    .GetNavigator(Java.Lang.Class.FromType(typeof(NavGraphNavigator)));

                _navGraph = new NavGraph(navGraphNavigator);


                var callbacks = new Callbacks(this);
                NavHost.NavController.AddOnDestinationChangedListener(callbacks);
                NavHost.ChildFragmentManager.RegisterFragmentLifecycleCallbacks(callbacks, false);
            }

            ApplyNavigationRequest(e);
        }
Esempio n. 19
0
 public override void Home(object parameter = null)
 {
     if (Platform.Current.AuthManager?.IsAuthenticated() != true)
     {
         this.Navigate(this.ParentFrame, typeof(WelcomeView), parameter, true);
     }
     else
     {
         // User is authenticated
         if (this.ParentFrame.Content == null || !(this.ParentFrame.Content is ShellView))
         {
             NavigationRequest navParam = parameter as NavigationRequest ?? new NavigationRequest(typeof(MainView), parameter);
             this.Navigate(this.ParentFrame, typeof(ShellView), navParam, true);
         }
         else
         {
             this.Navigate(typeof(MainView), parameter, true);
         }
     }
 }
        // the rest are inherited from the base class

        #endregion

        #region Main Overridable Methods

        protected override void OnProcessRequest(NavigationRequest request, Action <bool> requestCallback)
        {
            Guard.ArgumentNotNull(request, "request");
            Guard.ArgumentNotNull(requestCallback, "requestCallback");

            // we say we are navigating
            var _cancelEventArgs = new NavigatingCancelEventArgs(this, request);

            OnNavigating(_cancelEventArgs);

            // if not cancelled, then we go to our base class to check against the ISupportNavigation
            if (!_cancelEventArgs.Cancel)
            {
                base.OnProcessRequest(request, requestCallback);
            }
            else
            {
                requestCallback(false);
            }
        }
Esempio n. 21
0
        public async Task <NavigationResult> SendToMPA(List <Message> messageList, CancellationToken cancellationToken, Dictionary <string, string> navigationParameters = null)
        {
            var from    = messageList.FirstOrDefault().From;
            var request = new NavigationRequest
            {
                LimeMessages         = messageList,
                NavigationType       = NavigationType.Text,
                NavigationParameters = navigationParameters == null ? new Dictionary <string, string>() : navigationParameters
            };
            var result = await _navigation.GetNavigationAsync(request, cancellationToken);

            var navResult = await _navigation.ExecuteNavigationAsync(result, cancellationToken);

            if (result.State == NavigationState.Error || navResult?.NavigationState == NavigationState.Error)
            {
                var exception = navResult.Exception ?? result.NavigationActions.OfType <ErrorNavigationAction>().First().Exception;
                _logger.Error(exception, $"[NavigationError] Content: {from.ToString()};");
            }
            return(navResult);
        }
Esempio n. 22
0
        public bool OnFilterNavigation(NavigationRequest request)
        {
            if (!String.IsNullOrEmpty(request.Url.ToString()))
            {
                if (RoomPool.Rooms != null)
                {
                    int  id = request.ViewId;
                    Room r  = RoomPool.Rooms.Find(x => x.Panel.ViewID == id);

                    if (r != null)
                    {
                        if (!String.IsNullOrEmpty(request.Url.Host))
                        {
                            switch (request.Url.Host)
                            {
                            case "hashlink.script":
                            case "hashlink.link":
                            case "voice.clip":
                                r.Panel.ProcessLinkClicked(request.Url.ToString());
                                return(true);

                            case "external.link":
                                String str = request.Url.LocalPath.Substring(1);
                                byte[] buf = new byte[str.Length / 2];

                                for (var i = 0; i < buf.Length; i++)
                                {
                                    buf[i] = byte.Parse(str.Substring((i * 2), 2), NumberStyles.HexNumber);
                                }

                                str = Encoding.UTF8.GetString(buf);
                                r.Panel.ProcessLinkClicked(str);
                                return(true);
                            }
                        }
                    }
                }
            }

            return(false);
        }
Esempio n. 23
0
        /// <inheritdoc/>
        public void HandleNavigation(NavigationRequest request, IViewModel viewModel)
        {
            CurrentViewModel = viewModel;

            if (request.Properties.HistoryMode == HistoryBehavior.Default)
            {
                AddHistory(request);
            }
            else if (request.Properties.HistoryMode == HistoryBehavior.Block)
            {
                Clear();
            }
            else if (request.Properties.HistoryMode == HistoryBehavior.Skip)
            {
                //// Nothing happens, because history recording is skipped.
            }
            else
            {
                throw new ArgumentException($"Request contained unknown HistoryBehavior {request.Properties.HistoryMode}", nameof(request));
            }
        }
        public JsonResult Edit(NavigationRequest request)
        {
            Json       reponse = new Json();
            Navigation model   = new Navigation()
            {
                Areas          = request.Areas,
                ControllerName = request.ControllerName,
                Icon           = request.Icon,
                Id             = request.Id,
                IsSys          = request.IsSys,
                Link           = request.Link,
                Name           = request.Name,
                ParentId       = request.ParentId,
                Sort           = request.Sort,
                Level          = request.Level
            };

            _NavigationIService.Update(model);

            zTree ztree = new zTree()
            {
                id   = model.Id,
                pId  = model.ParentId ?? "0",
                name = model.Name,
                open = true
            };

            if (model.IsSys == 1)
            {
                ztree.noEditBtn   = true;
                ztree.noRemoveBtn = true;
            }


            reponse.code   = 200;
            reponse.status = 0;
            reponse.data   = ztree;
            return(Json(reponse));
        }
Esempio n. 25
0
        public IActionResult Create()
        {
            NavigationRequest request = new NavigationRequest();

            request.sortKey  = "Sort";
            request.sortType = 0;
            var list_nav    = _NavigationIService.GetList(request);
            var list_navdto = new List <NavigationDto>();

            foreach (var model in list_nav)
            {
                var dto = _IMapper.Map <NavigationDto>(model);
                dto.DictList = GetDictRole(model.Id);
                foreach (var item in dto.DictList)
                {
                    item.Status = 0;
                }
                list_navdto.Add(dto);
            }
            ViewData["list_navdto"] = list_navdto;
            return(View());
        }
Esempio n. 26
0
        public void Show(ViewModelBase viewModel, NavigationRequest request)
        {
            switch (viewModel)
            {
            case HomeViewModel vm1:
            {
                var vc = Instantiate <HomePageController>();
                vc.ViewModel = vm1;
                _root.PushViewController(vc, true);
                return;
            }

            case DetailsViewModel vm2:
            {
                var vc = Instantiate <DetailsPageController>();
                vc.ViewModel   = vm2;
                _root.Delegate = new CustomTransitionCoordinator();
                _root.PushViewController(vc, true);
                return;
            }
            }
        }
Esempio n. 27
0
        bool IResourceInterceptor.OnFilterNavigation(NavigationRequest request)
        {
            // ResourceInterceptor is global. It applies to all views
            // maintained by the WebCore. We are only interested in
            // requests targeting our WebControl.
            // CAUTION: IResourceInterceptor members are called on the I/O thread.
            // Cast to IWebView to perform thread-safe access to the Identifier property!
            if (request.ViewId != ((IWebView)webControl).Identifier)
            {
                return(false);
            }

            if ((request.Url == null) || (request.Url.Scheme != "asset"))
            {
                // Block navigations to resources outside our
                // application's asset stores.
                return(true);
            }

            // Allow navigation.
            return(false);
        }
Esempio n. 28
0
        /// <summary>
        /// This is called on <see cref="Frame.Navigating"/>.
        /// We use this handler to cancel the navigation when the request conflicts with the <see cref="NavigationController"/>.
        /// </summary>
        private void OnFrameNavigating(object sender, NavigatingCancelEventArgs e)
        {
            if (e.Cancel)
            {
                // If something cancelled the navigation, we simply ignore the event.
                return;
            }

            var frameRequest = new NavigationRequest(_frame, e);

            if (_controllerToFrameRequest != null)
            {
                // We get here when the UINavigationController initiated a navigation (like a back swipe) that is being executed by the Frame.
                if (NavigationRequest.Correlates(frameRequest, _controllerToFrameRequest))
                {
                    // We queue the request so that we can handle it in OnFrameNavigated and ignore it in OnFrameBackStackChanged.
                    _frameToControllerRequests.AddFirst(_controllerToFrameRequest);
                }
                else
                {
                    // When the Frame's request doesn't matche the UINavigationController's request. We cancel the Frame's request.
                    // Ex: The UINavigationController is doing a native back, but the Frame wants to go forward.
                    //     This sequencing can happen when you press back during an ViewModel operation that usually ends with a navigation.
                    e.Cancel = true;

                    if (this.Log().IsEnabled(LogLevel.Debug))
                    {
                        this.Log().Debug("Cancelled frame navigating request because a native navigation is in progress.");
                    }
                }
            }
            else
            {
                // We queue the request so that we can handle it in OnFrameNavigated and ignore it in OnFrameBackStackChanged.
                _frameToControllerRequests.AddFirst(frameRequest);
            }
        }
Esempio n. 29
0
        protected virtual void ShowFailedNavigationState(NavigationRequest request, ResponseStatus status, Exception error)
        {
            //if (request == null || string.IsNullOrEmpty(request.RequestUrl)) return;       // this is also for Blend
            //if (Debugger.IsAttached) return;
            if (IsInDesignMode())
            {
                return;
            }

            var _errorUrl = !string.IsNullOrEmpty(ErrorUrl) ? ErrorUrl : DEFAULT_ERRORPAGE_URL;

            // note_, we resolve
            Navigation.NavigationService.Resolve(new NavigationRequest(_errorUrl), async(r) =>
            {
                // set the stuff
                var _supporter      = Navigation.NavigationService.GetSupporter <ISupportNavigationFailure>(r.Content);
                var _currentContent = Navigation.NavigationService.GetSupporter <ISupportNavigationFailure>(this.Content);
                if (_supporter != null)
                {
                    _supporter.Request        = request;
                    _supporter.RefererRequest = _currentContent != null ? _currentContent.RefererRequest
                                                ?? CurrentNavigationRequest : CurrentNavigationRequest;
                    _supporter.ResponseStatus = status;
                    _supporter.Error          = error;
                }

                // changed this to process response because
                //this.SetValue(ContentProperty, r.Content);
                //var _currentNavigationRequest = CurrentNavigationRequest;
                await this.ProcessResponseImplAsync(new NavigationResponse(ActiveNavigationRequest, ResponseStatus.Success, r.Content, null, error));
                //CurrentNavigationRequest = _currentNavigationRequest;

                // set the title
                Title = NAVIGATION_FAILED_TITLE;
            });
        }
Esempio n. 30
0
        /// <inheritdoc/>
        public void Navigate(NavigationRequest request, bool includeHistory = true)
        {
            if (request.IsCloseRequest)
            {
                //// Send close request to IViewProvider.
                ViewProvider.SetView(request, null);
                if (includeHistory)
                {
                    //// Reports request to history.
                    History.HandleNavigation(request, null);
                }
            }
            else
            {
                //// Resolves values from the request.
                IViewModel viewModel             = (IViewModel)LifetimeScope.Resolve(request.ViewModelType);
                Type       viewModelRealizedType = viewModel.GetType();
                Type       viewType = typeof(IView <>).MakeGenericType(viewModelRealizedType);
                IView      view     = (IView)LifetimeScope.Resolve(viewType, new TypedParameter(viewModelRealizedType, viewModel));

                //// Sets the view.
                ViewProvider.SetView(request, view);

                if (includeHistory)
                {
                    //// Reports navigated content to history.
                    History.HandleNavigation(request, viewModel);
                }

                //// Initializes the view-model and view.
                view.Initialize();
                SynchronousTask initViewModelTask =
                    new SynchronousTask(() => viewModel.InitializeAsync(request.Parameter));
                initViewModelTask.RunTask();
            }
        }
        private async void OnClickGetNavigationContextState(object sender, EventArgs eventArgs)
        {
            string Tag = "NavigationContextState";
            int    requestType;

            if (int.TryParse(FindViewById <EditText>(Resource.Id.typeText).Text, out requestType))
            {
                NavigationRequest request = new NavigationRequest(requestType);
                var navigationResultTask  = locationEnhanceService.GetNavigationStateAsync(request);
                try
                {
                    await navigationResultTask;
                    if (navigationResultTask.IsCompleted && navigationResultTask.Result != null)
                    {
                        NavigationResult result = navigationResultTask.Result;
                        log.Info(Tag, $"Get {Tag} succeeded, state: {result.State}, possibility: {result.Possibility}");
                    }
                    else
                    {
                        log.Error(Tag, $"Get {Tag} failed: {navigationResultTask.Exception.Message}");
                    }
                }
                catch (Exception e)
                {
                    if (e is ApiException apiException)
                    {
                        if (apiException.StatusCode == 10803)
                        {
                            //PermissionDenied
                            Utils.RequestLocationPermission(this);
                        }
                    }
                    log.Error(Tag, $"Get {Tag} exception: {e.Message}");
                }
            }
        }
Esempio n. 32
0
        public void Show(ViewModelBase viewModel, NavigationRequest request)
        {
            // First activity will be displayed elsewhere
            if (CurrentView?.Helper?.CurrentActivity == null)
            {
                return;
            }

            Type activityType;

            switch (viewModel)
            {
            case HomeViewModel vm1:
            {
                activityType = typeof(HomePageActivity);
                break;
            }

            case DetailsViewModel vm2:
            {
                activityType = typeof(DetailsActivity);
                break;
            }

            default:
            {
                Logger.LogError("Unknown viewModel");
                return;
            }
            }

            var intent = new Intent(CurrentView.Helper.CurrentActivity, activityType);

            CurrentView.Helper.CurrentActivity.StartActivity(intent);
            CurrentView.Helper.NextPageKey = request.Key;
        }
Esempio n. 33
0
 /// <summary>
 /// Redirects to an alternative action on another controller.
 /// </summary>
 /// <param name="controllerName">Name of the controller.</param>
 /// <param name="actionName">Name of the action.</param>
 /// <param name="actionParameters">The action parameters.</param>
 /// <returns>A <see cref="RedirectResult"/>.</returns>
 public RedirectResult Redirect(string controllerName, string actionName, params Func<string, object>[] actionParameters)
 {
     var request = new NavigationRequest(controllerName, actionName, new RouteValueDictionary(actionParameters));
     return Redirect(request);
 }
 public bool OnFilterNavigation(NavigationRequest request)
 {
     var s = request.Url.ToString();
     return !s.StartsWith(LocalRequestUrlBase) && !s.StartsWith("asset://markpad");
 }
Esempio n. 35
0
 public NavigatingCancelInfo(NavigationRequest request)
 {
     this.request = request;
 }
Esempio n. 36
0
 private void PublishNavigationFailedInfo(NavigationRequest request)
 {
     Channel<NavigationFailedInfo>.Public.OnNext(new NavigationFailedInfo(request));
 }
Esempio n. 37
0
        /// <summary>
        /// Performs the navigation to the given target
        /// </summary>
        /// <param name="target"></param>
        public void Navigate(NavigateMode mode, string target, params object[] args)
        {
            if (String.IsNullOrEmpty(target))
            {
                IShowMessageViewService showMessageService = ViewServiceLocator.GetViewService<IShowMessageViewService>();

                showMessageService.ButtonSetup  = DialogButton.Ok;
                showMessageService.Caption      = "Warning";
                showMessageService.Text         = "Option not mapped to a view.";

                showMessageService.ShowMessage();

                return;
            }

            Application.Current.Dispatcher.BeginInvoke
            (
                DispatcherPriority.Background,
                new ThreadStart
                (
                    delegate
                    {
                        ParametersCollection    navParams   = null;
                        string                  area        = null;

                        if (args != null && args.Length > 0)
                        {
                            navParams = new ParametersCollection();
                            navParams.Add(NavigationParams.NavigationParamsKey, args);
                        }

                        var smnode = SiteMapService.SiteMap.RootNode.ChildNodes
                            .OfType<NavigationNode>()
                            .Traverse<NavigationNode>(node => ((node.ChildNodes) != null ? node.ChildNodes.OfType<NavigationNode>() : null))
                            .Where(n => n.Url == target).SingleOrDefault();

                        if (smnode != null)
                        {
                            area = smnode.SiteArea;
                        }

                        NavigationRequest   request         = new NavigationRequest(target, navParams, area, mode);
                        IDisposable         navigationToken = nRoute.Navigation.NavigationService.Navigate(request);

                        if (navigationToken != null)
                        {
                            navigationToken.Dispose();
                            navigationToken = null;
                        }
                    }
                )
            );
        }
Esempio n. 38
0
 /// <summary>
 /// Redirects to a different navigation request.
 /// </summary>
 /// <param name="request">The request.</param>
 /// <returns></returns>
 public virtual RedirectResult Redirect(NavigationRequest request)
 {
     Guard.ArgumentNotNull(request, "request");
     request.ContextParameters.AddRange(Request.ContextParameters);
     return new RedirectResult(request);
 }
 /// <summary>
 /// Navigates to a page specified in the navigation request object.
 /// </summary>
 /// <param name="request">Request object instance.</param>
 public void NavigateTo(NavigationRequest request)
 {
     if(request != null)
         this.Frame.Navigate(Type.GetType(request.ViewType), this.SerializeParameter(request.ViewParameter));
 }
Esempio n. 40
0
 public bool OnFilterNavigation(NavigationRequest request)
 {
     return false;
 }
Esempio n. 41
0
 public NavigatedInfo(NavigationRequest request, string title, Guid windowId)
 {
     this.request    = request;
     this.title      = title;
     this.windowId   = windowId;
 }
 public bool OnFilterNavigation(NavigationRequest request)
 {
     return !request.Url.ToString().StartsWith(LocalRequestUrlBase);
 }
Esempio n. 43
0
        /// <summary>
        /// Validates the given <see cref="NavigationRequest"/> instance
        /// </summary>
        /// <param name="request"></param>
        /// /// <returns>Returns as to if the request was validated or not, if not validated it woun't be processed.</returns>
        private bool ValidateRequest(NavigationRequest request)
        {
            // basic check
            if (request == null)
            {
                throw new ArgumentNullException("request");
            }

            // by default
            return true;
        }