protected async override void OnNavigatedTo(NavigationEventArgs e) { base.OnNavigatedTo(e); model.Title = NavigationContext.QueryString["title"]; var gameType = NavigationContext.QueryString["gametype"]; Exception exception = null; try { await model.Init(gameType); } catch (Exception ex) { exception = ex; } if (exception != null) { ToastPrompt toast = new ToastPrompt() { Title = "Error", Message = exception.Message, TextOrientation = System.Windows.Controls.Orientation.Vertical, MillisecondsUntilHidden = 4000 }; //toast.ImageSource = new BitmapImage(new Uri("ApplicationIcon.png", UriKind.RelativeOrAbsolute)); //toast.Completed += toast_Completed; toast.Show(); BugSenseLogResult result = await BugSenseHandler.Instance.LogExceptionAsync(exception); Debug.WriteLine("Client Request: {0}", result.ClientRequest); } }
private async Task ShowToastException(String title, Exception exception) { ToastPrompt toast = new ToastPrompt() { Title = title, Message = exception.Message, TextOrientation = System.Windows.Controls.Orientation.Vertical, MillisecondsUntilHidden = 4000 }; //toast.ImageSource = new BitmapImage(new Uri("ApplicationIcon.png", UriKind.RelativeOrAbsolute)); //toast.Completed += toast_Completed; toast.Show(); BugSenseLogResult result = await BugSenseHandler.Instance.LogExceptionAsync(exception); Debug.WriteLine("Client Request: {0}", result.ClientRequest); }
public static string ConvertToMoney(double number) { double wholePart; double decimalPart; SplitNumber(Math.Round(number, 2), out wholePart, out decimalPart); string result = "[Unable To Convert]"; try { if (((decimal)number * 100) % 10 == 0) { decimalPart *= 10; } StringBuilder sb = new StringBuilder(); if (wholePart > 0) { sb.Append(NumWords(wholePart)); } if (sb.Length > 0) { sb.Append(" and "); } if (decimalPart < 10) { sb.Append(0); } sb.Append((int)decimalPart).Append("/").Append("100"); result = sb.ToString(); } catch (Exception ex) { LimitedCrashExtraDataList extraDataList = new LimitedCrashExtraDataList { new CrashExtraData("Number", number.ToString()) }; BugSenseLogResult bsResult = BugSenseHandler.Instance.LogException(ex, extraDataList); Debug.WriteLine("Client Request: {0}", bsResult.ClientRequest); } return(result); }
public static void HandleError(Exception ex) { if (System.Net.NetworkInformation.NetworkInterface.GetIsNetworkAvailable()) { var webException = ex as WebException; if (webException != null) { MessageBox.Show(Strings.ErrorSiteNotAvailableMessage, Strings.ErrorSiteNotAvailableTitle, MessageBoxButton.OK); } else { BugSenseLogResult logResult = BugSenseHandler.Instance.LogException(ex, "Trivia Buff", "Handled Exception"); } } else { if (!App.ViewModel.Items.Any()) { MessageBox.Show(Strings.ErrorInternetConnection); App.ViewModel.LoadOffline(); } } }
public static string ConvertToDecimal(double number) { if (number == 0) { return(numbers[0]); } double wholePart; double decimalPart; SplitNumber(number, out wholePart, out decimalPart); string result = "[Unable To Convert]"; try { StringBuilder sb = new StringBuilder(NumWords(wholePart)); if (sb.Length > 0) { sb.Append(" and "); } sb.Append(NumWords(decimalPart)).Append(" ").Append(decimals[decimalPart.ToString().Length]); result = sb.ToString(); } catch (Exception ex) { LimitedCrashExtraDataList extraDataList = new LimitedCrashExtraDataList { new CrashExtraData("Number", number.ToString()) }; BugSenseLogResult bsResult = BugSenseHandler.Instance.LogException(ex, extraDataList); Debug.WriteLine("Client Request: {0}", bsResult.ClientRequest); } return(result); }
private void chatLoop(ClientStyler clientStyler) { clientStyler.isConnecting = true; clientStyler.isTyping = false; isDying = false; //when error event is recieved, set isDying so you don't get loads of msgboxes clientStyler.Instance.Start(); Dispatcher.BeginInvoke(() => { foreach (ApplicationBarMenuItem abmi in ApplicationBar.MenuItems) { abmi.IsEnabled = false; } ApplicationBar.Buttons.Clear(); ApplicationBar.Mode = ApplicationBarMode.Minimized; updateTitleBar(); messageList = new ObservableCollection <Message>(); messageLLS.ItemsSource = messageList; }); while (true) { clientStyler.Instance.eventInQueueSignal.WaitOne(); lock (clientStyler.Instance.eventQueue) { while (true) { Event currentEvent; //is there a better way to empty the queue? try { currentEvent = clientStyler.Instance.eventQueue.Dequeue(); } catch { break; } //high level event handling switch (currentEvent.type) { case (EventType.Waiting): //sucessfully connected to omegle, waiting for stranger break; case (EventType.GotMessage): Dispatcher.BeginInvoke(() => { string msg = currentEvent.parameters[0]; clientStyler.isTyping = false; updateTitleBar(); if (chatMode == ChatMode.Intercept) { if (regexps != null) { foreach (Regexp regexp in regexps) { if (WordPage.IsValidRegex(regexp.Find)) { msg = System.Text.RegularExpressions.Regex.Replace(msg.ToLower(), regexp.Find, regexp.Replace); } } } foreach (ClientStyler cs in clientList) { if (cs != clientStyler) { cs.Instance.send(msg); Debug.WriteLine("Relayed message"); } } } if (!msg.Equals(currentEvent.parameters[0])) { msg = String.Format("\"{0}\"\n{1}:\n\"{2}\"", currentEvent.parameters[0], AppResources.ChangedText, msg); } generalMessageAdd(clientStyler, msg); }); break; case (EventType.Typing): Dispatcher.BeginInvoke(() => { clientStyler.isTyping = true; updateTitleBar(); if (chatMode == ChatMode.Intercept) { foreach (ClientStyler cs in clientList) { if (!(cs.Equals(clientStyler))) { cs.Instance.typing(); } } } }); break; case (EventType.StoppedTyping): Dispatcher.BeginInvoke(() => { clientStyler.isTyping = false; updateTitleBar(); if (chatMode == ChatMode.Intercept) { foreach (ClientStyler cs in clientList) { if (!(cs.Equals(clientStyler))) { cs.Instance.stoppedTyping(); } } } }); break; case (EventType.Connected): Dispatcher.BeginInvoke(() => { clientStyler.isConnecting = false; if (chatMode == ChatMode.AskQuestion) { generalMessageAdd(systemStyle, AppResources.StrangersConnectedText); } else { generalMessageAdd(systemStyle, String.Format(AppResources.ConnectedText, clientStyler.Number)); } updateTitleBar(); generalConnected(); }); break; case (EventType.StrangerDisconnected): Dispatcher.BeginInvoke(() => { clientStyler.Instance.disconnect(); //clientStyler.Color = new SolidColorBrush(Colors.Gray); checkAllDone(); generalMessageAdd(systemStyle, String.Format(AppResources.DisconnectedText, clientStyler.Number)); }); break; case (EventType.Question): Dispatcher.BeginInvoke(() => { generalMessageAdd(systemStyle, String.Format(AppResources.GotQuestionText, currentEvent.parameters[0])); }); break; case (EventType.RecaptchaRequired): Dispatcher.BeginInvoke(() => { pauseAll(); showRecaptchaBox(clientStyler, currentEvent.parameters[0]); }); break; case (EventType.RecaptchaRejected): Dispatcher.BeginInvoke(() => { pauseAll(); if (usingAutoSolver) { int autoSolveCredit = 0; if (appSettings.Contains("solvecredit")) { autoSolveCredit = (int)appSettings["solvecredit"]; } else { appSettings["solvecredit"] = autoSolveCredit; appSettings.Save(); } appSettings["solvecredit"] = autoSolveCredit + 1; appSettings.Save(); MessageBox.Show(AppResources.AutoSolveFailedText); usingAutoSolver = false; //report failed solve to DBC return; return; } showRecaptchaBox(clientStyler, currentEvent.parameters[0]); }); break; case (EventType.CommonLikes): Dispatcher.BeginInvoke(() => { string topics = ""; Boolean isFirst = true; foreach (string topic in currentEvent.parameters) { if (!isFirst) { topics += ","; isFirst = false; } topics += String.Format(" \"{0}\"", topic); } generalMessageAdd(systemStyle, String.Format(AppResources.YouBothLikeText, topics)); }); break; case (EventType.SpyMessage): Dispatcher.BeginInvoke(() => { int stranger = 0; int.TryParse(currentEvent.parameters[0].Substring(currentEvent.parameters[0].Length - 1), out stranger); string msg = currentEvent.parameters[1]; if (stranger == 1) { generalMessageAdd(((SpyStyler)clientStyler).stranger1Styler, msg); } else if (stranger == 2) { generalMessageAdd(((SpyStyler)clientStyler).stranger2Styler, msg); } else { //internal error Debug.WriteLine("Stranger number not 1 or 2!"); } }); break; case (EventType.SpyDisconnected): Dispatcher.BeginInvoke(() => { int stranger = 0; int.TryParse(currentEvent.parameters[0].Substring(currentEvent.parameters[0].Length - 1), out stranger); clientStyler.Instance.disconnect(); generalMessageAdd(systemStyle, String.Format(AppResources.DisconnectedText, stranger)); checkAllDone(); }); break; case (EventType.Error): Dispatcher.BeginInvoke(() => { if ((((ErrorEvent)currentEvent).exception is System.Net.Http.HttpRequestException) && (((System.Net.Http.HttpRequestException)(((ErrorEvent)currentEvent).exception)).InnerException is WebException) && (((WebException)((System.Net.Http.HttpRequestException)(((ErrorEvent)currentEvent).exception)).InnerException).Status == WebExceptionStatus.RequestCanceled)) { Debug.WriteLine("threw out requestcancelled error"); return; //no big deal, just try again on next eventthread trigger } clientStyler.Instance.Stop(); if (isDying) { return; } isDying = true; checkAllDone(); MessageBox.Show(AppResources.ConnectionError); LimitedCrashExtraDataList extrasExtraDataList = new LimitedCrashExtraDataList { new CrashExtraData("Omeddle", "Generic ErrorEvent") }; #if DEBUG throw ((ErrorEvent)currentEvent).exception; #else BugSenseLogResult sendResult = BugSense.BugSenseHandler.Instance.LogException(((ErrorEvent)currentEvent).exception); #endif }); break; } } } } }