Example #1
0
    public bool TransitionToState(State newState, bool noStateReentry = false)
    {
        if (newState == null)
        {
            Debug.LogError("New state is null! AHHHHH");
            return(false);
        }
        if (activeAction != ActiveAction.none)
        {
            Debug.LogError("Attempt to transition state during action '" + activeAction.ToString() + "' in state '" + state.name + "' .");
            return(false);
        }
        State oldState = state;

        if (state != null)
        {
            if (state.priority > newState.priority)
            {
                return(false);//overruled
            }

            if (state == newState && noStateReentry)
            {
                return(false);
            }

            //print("changing state from " + state.name + " to " + s.name);
            activeAction = ActiveAction.exit;
            state.exitAction(newState);
            state        = newState;
            activeAction = ActiveAction.enter;
            state.enterAction(oldState);
            activeAction = ActiveAction.none;
            return(true);
        }
        else
        {
            state        = newState;
            activeAction = ActiveAction.enter;
            state.enterAction(oldState);
            activeAction = ActiveAction.none;
            return(true);
        }
    }
Example #2
0
        private void SetPageInformation(ActionExecutingContext context)
        {
            Controller controller = context.Controller as Controller;

            if (controller != null)
            {
                StringValues RequestId;
                StringValues ErrorMessage;
                object       ActiveController;
                object       ActiveAction;

                string returnUrl = context.HttpContext.Request.Headers["Referer"].ToString();

                context.HttpContext.Request.Query.TryGetValue("RequestId", out RequestId);
                context.HttpContext.Request.Query.TryGetValue("ErrorMessage", out ErrorMessage);
                context.RouteData.Values.TryGetValue("Controller", out ActiveController);
                context.RouteData.Values.TryGetValue("Action", out ActiveAction);

                if (string.IsNullOrEmpty(returnUrl))
                {
                    returnUrl = _httpContextAccessor.HttpContext.Request.PathBase;
                }
                else
                {
                    Uri uri = new Uri(returnUrl);
                    returnUrl = uri.AbsolutePath;
                }

                PageViewModel pageViewModel = new PageViewModel();
                pageViewModel.ReturnURL    = returnUrl;
                pageViewModel.RequestId    = RequestId;
                pageViewModel.ErrorMessage = ErrorMessage;
                pageViewModel.Controller   = ActiveController.ToString();
                pageViewModel.Action       = ActiveAction.ToString();

                controller.ViewData["PageViewModel"] = pageViewModel;
            }
        }