/// ------------------------------------------------------------------------------------ private void PutOnClipboard() { var text = SearchQueryValidationError.GetSingleStringErrorMsgFromListOfErrors( _labelPattern.Text, _errors); Clipboard.SetDataObject(text, true); }
/// ------------------------------------------------------------------------------------ public SearchQueryValidationErrorControl(string pattern, IList <SearchQueryValidationError> errors, bool showPatternInHeading) : this() { _errors = errors; _labelPattern.Visible = showPatternInHeading; _labelPattern.Text = pattern; _labelHeading.Text = SearchQueryValidationError.GetHeadingTextForErrorList(null); }
/// ------------------------------------------------------------------------------------ private void HandleSendEmailLinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { try { var emailProvider = EmailProviderFactory.PreferredEmailProvider(); var emailMessage = emailProvider.CreateMessage(); emailMessage.To.Add(ErrorReport.EmailAddress); emailMessage.Subject = ErrorReport.EmailSubject; emailMessage.Body = SearchQueryValidationError.GetSingleStringErrorMsgFromListOfErrors( _labelPattern.Text, _errors); if (emailMessage.Send(emailProvider)) { return; } } catch { //swallow it and go to the alternate method } try { var emailProvider = EmailProviderFactory.PreferredEmailProvider(); var emailMessage = emailProvider.CreateMessage(); emailMessage.To.Add(ErrorReport.EmailAddress); emailMessage.Subject = ErrorReport.EmailSubject; if (Environment.OSVersion.Platform == PlatformID.Unix) { emailMessage.Body = SearchQueryValidationError.GetSingleStringErrorMsgFromListOfErrors( _labelPattern.Text, _errors); } else { PutOnClipboard(); emailMessage.Body = LocalizationManager.GetString("PhoneticSearchingMessages.SendEmailPasteFromClipboardPromptMsg", "<Details of search errror have been copied to the clipboard. Please paste them here>"); } emailMessage.Send(emailProvider); } catch (Exception error) { PutOnClipboard(); var text = LocalizationManager.GetString("PhoneticSearchingMessages.SendEmailFailureMsg", "This program was not able to get your email program, if you have one, to send the " + "error message. The contents of the error message has been placed on your Clipboard."); ErrorReport.NotifyUserOfProblem(error, text); } }
/// ------------------------------------------------------------------------------------ private DistributionChartExceptionInfo GetError(SearchQuery query) { var validator = new SearchQueryValidator(m_project); if (validator.GetIsValid(query)) { return(null); } return(new DistributionChartExceptionInfo { Class = "error", Message = SearchQueryValidationError.GetSingleStringErrorMsgFromListOfErrors(query.Pattern, validator.Errors) }); }
/// ------------------------------------------------------------------------------------ private Control GetHelpLink(SearchQueryValidationError error) { if (error.Exception != null) { return(null); } var text = LocalizationManager.GetString("PhoneticSearchingMessages.ErrorsSuggestedHelpLinksMsg", "Suggested help topics to review: {0}"); var topics = error.HelpLinks.Aggregate(string.Empty, (current, id) => current + (_helpTopicIds[id] + ", ")); if (!error.HelpLinks.Contains("hidSearchPatternsTroubleshooting")) { topics += _helpTopicIds["hidSearchPatternsTroubleshooting"]; } text = string.Format(text, topics.TrimEnd(',', ' ')); var linkLabel = new LinkLabel { Text = text, TextAlign = ContentAlignment.TopLeft, AutoSize = true, Font = FontHelper.UIFont, BackColor = _panelScrolling.BackColor, Anchor = AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Top, Margin = new Padding(0, 4, 0, 12), }; linkLabel.LinkClicked += HandleHelpLinkClicked; linkLabel.Links.Clear(); foreach (var id in error.HelpLinks) { linkLabel.Links.Add(text.IndexOf(_helpTopicIds[id], StringComparison.Ordinal), _helpTopicIds[id].Length, id); } if (!error.HelpLinks.Contains("hidSearchPatternsTroubleshooting")) { linkLabel.Links.Add(text.IndexOf(_helpTopicIds["hidSearchPatternsTroubleshooting"], StringComparison.Ordinal), _helpTopicIds["hidSearchPatternsTroubleshooting"].Length, "hidSearchPatternsTroubleshooting"); } return(linkLabel); }
/// ------------------------------------------------------------------------------------ public SearchEngine CheckSearchQuery(SearchQuery query, bool showErrMsg) { var validator = new SearchQueryValidator(m_project); if (!validator.GetIsValid(query) && showErrMsg) { Utils.MsgBox(SearchQueryValidationError.GetSingleStringErrorMsgFromListOfErrors(query.Pattern, validator.Errors)); return(null); } SearchEngine.IgnoreUndefinedCharacters = m_project.IgnoreUndefinedCharsInSearches; return(new SearchEngine(query, SearchEngine.PhoneCache ?? m_project.PhoneCache)); //SearchQuery modifiedQuery; //if (!App.ConvertClassesToPatterns(query, out modifiedQuery, showErrMsg)) // return null; //SearchEngine.IgnoreUndefinedCharacters = m_project.IgnoreUndefinedCharsInSearches; //var engine = new SearchEngine(modifiedQuery, m_project.PhoneCache ?? SearchEngine.PhoneCache); //var msg = modifiedQuery.GetCombinedErrorMessages(); //if (!string.IsNullOrEmpty(msg)) //{ // if (showErrMsg) // Utils.MsgBox(msg); // query.Errors.AddRange(modifiedQuery.Errors); // return null; //} //if (!ReflectionHelper.GetBoolResult(typeof(App), // "VerifyMiscPatternConditions", new object[] { engine, showErrMsg })) //{ // query.Errors.AddRange(modifiedQuery.Errors); // return null; //} //return engine; }
/// ------------------------------------------------------------------------------------ private Control GetExceptionLink(SearchQueryValidationError error) { var text = LocalizationManager.GetString("PhoneticSearchingMessages.ExceptionLinkText.FullMsg", "Unhandled Exception encountered. Click here for details."); var linkText = LocalizationManager.GetString("PhoneticSearchingMessages.ExceptionLinkText.LinkText", "Click here"); var linkLabel = new LinkLabel { Text = text, TextAlign = ContentAlignment.TopLeft, AutoSize = true, Font = FontHelper.UIFont, BackColor = _panelScrolling.BackColor, Anchor = AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Top, Margin = new Padding(0, 0, 0, 12), }; linkLabel.LinkClicked += HandleExceptionLinkClicked; linkLabel.Links.Clear(); linkLabel.Links.Add(text.IndexOf(linkText, StringComparison.Ordinal), linkText.Length, error.Exception); return(linkLabel); }