/// <summary> /// format an error message using the errors from Verification Result /// </summary> /// <param name="AMessageHeadline"></param> /// <param name="AVerificationResult"></param> /// <returns></returns> public static String BuildMessageFromVerificationResult(String AMessageHeadline, TVerificationResultCollection AVerificationResult) { String ReturnValue; IEnumerator VerificationResultEnum; TVerificationResult VerificationResultEntry; if (AMessageHeadline == null) { if (AVerificationResult == null) { throw new ArgumentNullException("AVerificationResult must not be null if AMessageHeadline is null!"); } if (AVerificationResult.HasCriticalErrors) { AMessageHeadline = Catalog.GetString("Saving of data failed!\r\n\r\nReasons:"); } else { AMessageHeadline = StrWarningsAttention; } } // MessageBox.Show('AVerificationResult.Count: ' + AVerificationResult.Count.ToString); ReturnValue = AMessageHeadline + Environment.NewLine; VerificationResultEnum = AVerificationResult.GetEnumerator(); while (VerificationResultEnum.MoveNext()) { VerificationResultEntry = ((TVerificationResult)VerificationResultEnum.Current); ReturnValue += " * "; if (VerificationResultEntry.ResultContext != null) { if (!(VerificationResultEntry.ResultContext is TRowReferenceInfo)) { ReturnValue += "[" + VerificationResultEntry.ResultContext.ToString() + "] "; } } ReturnValue += VerificationResultEntry.ResultText; if (VerificationResultEntry.ResultCode != String.Empty) { ReturnValue += " [" + VerificationResultEntry.ResultCode + "]"; } ReturnValue += Environment.NewLine + Environment.NewLine; } return ReturnValue; }
/// <summary> /// to be called from outside /// </summary> /// <returns>true if successful /// </returns> protected virtual bool ReadControlsWithErrorHandling(TReportActionEnum AReportAction) { bool ReturnValue; TVerificationResult VerificationResultEntry; System.Collections.IEnumerator VerificationResultEnum; String UserMessage; ReturnValue = false; try { FVerificationResults = new TVerificationResultCollection(); ReadControls(AReportAction); // Overridden versions of this method may add verification results. if (FVerificationResults.Count != 0) { UserMessage = "Report could not be generated." + Environment.NewLine + Environment.NewLine + "Reasons:" + Environment.NewLine + Environment.NewLine; VerificationResultEnum = FVerificationResults.GetEnumerator(); while (VerificationResultEnum.MoveNext()) { VerificationResultEntry = ((TVerificationResult)VerificationResultEnum.Current); if (VerificationResultEntry.ResultContext.ToString().Length > 0) { UserMessage = UserMessage + " * [" + VerificationResultEntry.ResultContext + "] "; } else { UserMessage = UserMessage + " * "; } UserMessage = UserMessage + VerificationResultEntry.ResultText + Environment.NewLine + Environment.NewLine; } MessageBox.Show(UserMessage, "Error"); } else { ReturnValue = true; } } catch (Exception e) { TLogging.Log(e.ToString()); if (TLogging.DebugLevel >= TLogging.DEBUGLEVEL_REPORTING) { MessageBox.Show(e.ToString(), "DEBUG: Invalid Selection"); // todo: use the verification tools from Christian MessageBox.Show(e.Message, "Invalid Selection"); } } return ReturnValue; }