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); } }
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; } }