private void TranslateMessages(ActionExecutedContext filterContext) { if (filterContext.Controller.ViewData.ContainsKey("Messages")) { MessageViewData messageViewData = (MessageViewData)filterContext.Controller.ViewData["Messages"]; foreach (KeyValuePair <string, IList <string> > messagesForType in messageViewData.Messages) { for (int i = 0; i < messagesForType.Value.Count; i++) { string baseName = String.Format("{0}.globalresources" , filterContext.Controller.GetType().Namespace.Replace(".Controllers", String.Empty).ToLowerInvariant()); string originalMessage = messagesForType.Value[i]; string translatedMessage = this._localizer.GetString(originalMessage, baseName); if (translatedMessage != originalMessage) { messagesForType.Value[i] = translatedMessage; // Change the key of the messageParams if there were params for the original key if (messageViewData.MessageParams.ContainsKey(originalMessage)) { messageViewData.MessageParams.Add(translatedMessage, messageViewData.MessageParams[originalMessage]); messageViewData.MessageParams.Remove(originalMessage); } } } } } }
private void ShowMessage(MessageViewData messageViewData) { if (messageViewData == null) { return; } _scrollPicker.AddDataItem(messageViewData, true); InitVariantButtons(messageViewData); }
static void CreateMessage(string parentQuestStepId, string text, bool isUserMsg = false) { MessageViewData msg = new MessageViewData(); msg.text = text; msg.isUserMsg = isUserMsg; msg.parentQuestStepId = parentQuestStepId; Data.Repository.UserMessageHistory.Set(msg); GlobalEvents.OnMessageNew.Publish(msg); }
private void ShowNextMessage() { if (messageQueue.Count <= 0) { return; } MessageViewData messageViewData = messageQueue.Dequeue(); ShowMessage(messageViewData); }
private void ShowNewMessage(MessageViewData messageViewData) { messageViewData.isNew = true; if (messageQueue.Count <= 0) { ShowMessage(messageViewData); } else { messageQueue.Enqueue(messageViewData); } }
private void InitMessageViewData(ActionExecutingContext filterContext) { var currentController = filterContext.Controller; this._tempData = currentController.TempData; if (this._tempData.ContainsKey("Messages")) { this._messageViewData = new MessageViewData((MessageViewData)this._tempData["Messages"]); } else { this._messageViewData = new MessageViewData(); } this._messageViewData.FlashMessageAdded += new EventHandler(MessageViewData_FlashMessageAdded); currentController.ViewData["Messages"] = this._messageViewData; }
private void InitVariantButtons(MessageViewData messageViewData) { //init variant buttons ResetVariantButtons(); if (!messageViewData.isUserMsg) { QuestMessageData questStep = Data.Repository.MessageSteps[messageViewData.parentQuestStepId]; for (int i = 0; i < _variantButtons.Length; i++) { if (i < questStep.variants.Length) { _variantButtons[i].SetData(questStep.variants[i]); } } } }
public override void UpdateView(object dataObject) { StopAllCoroutines(); _messageViewData = (MessageViewData)dataObject; message.text = _messageViewData.text; if (_messageViewData.isNew && !_messageViewData.isUserMsg) { _messageViewData.isNew = false; StartCoroutine(TypeMessage(_messageViewData.text)); } else { message.text = _messageViewData.text; //EventManager.Get<TypeMessageCompleteEvent>().Publish(_messageViewData); } SetMode(_messageViewData.isUserMsg); }
public override void OnException(ExceptionContext filterContext) { if (filterContext == null) { throw new ArgumentNullException("filterContext"); } // If custom errors are disabled, we need to let the normal ASP.NET exception handler // execute so that the user can see useful debugging information. if (filterContext.ExceptionHandled || !filterContext.HttpContext.IsCustomErrorEnabled) { return; } Exception exception = filterContext.Exception; // If this is not an HTTP 500 (for example, if somebody throws an HTTP 404 from an action method), // ignore it. if (new HttpException(null, exception).GetHttpCode() != 500) { return; } if (!ExceptionType.IsInstanceOfType(exception)) { return; } string controllerName = (string)filterContext.RouteData.Values["controller"]; string actionName = (string)filterContext.RouteData.Values["action"]; HandleErrorInfo model = new HandleErrorInfo(filterContext.Exception, controllerName, actionName); if (this._logger.IsErrorEnabled) { this._logger.Error(string.Format("An unexpected error occured while executing {0} in {1}.", actionName, controllerName), exception); } MessageViewData messageViewData = new MessageViewData(); while (exception != null) { messageViewData.AddErrorMessage(this._localizer.GetString(exception.Message)); exception = exception.InnerException; } var viewData = new ViewDataDictionary <HandleErrorInfo>(model); viewData["Messages"] = messageViewData; // Render error view filterContext.Result = new ViewResult { ViewName = View, MasterName = Master, ViewData = viewData, TempData = filterContext.Controller.TempData }; filterContext.ExceptionHandled = true; filterContext.HttpContext.Response.Clear(); filterContext.HttpContext.Response.StatusCode = 500; }
private void OnTypeMessageComplete(MessageViewData messageViewData) { InitVariantButtons(messageViewData); ShowNextMessage(); }