void FillDefaultErrorValues (bool showTrace, bool showExceptionType, Exception baseEx, ExceptionPageTemplateValues values)
{
if (baseEx == null)
baseEx = this;
values.Add (ExceptionPageTemplate.Template_PageTitleName, String.Format ("Error{0}", http_code != 0 ? " " + http_code : String.Empty));
values.Add (ExceptionPageTemplate.Template_ExceptionTypeName, showExceptionType ? baseEx.GetType ().ToString () : "Runtime error");
values.Add (ExceptionPageTemplate.Template_ExceptionMessageName, http_code == 404 ? "The resource cannot be found." : HtmlEncode (baseEx.Message));
string tmp = http_code != 0 ? "HTTP " + http_code + "." : String.Empty;
values.Add (ExceptionPageTemplate.Template_DescriptionName, tmp + (http_code == 404 ? ERROR_404_DESCRIPTION : HtmlEncode (Description)));
if (!String.IsNullOrEmpty (resource_name))
values.Add (ExceptionPageTemplate.Template_DetailsName, "Requested URL: " + HtmlEncode (resource_name));
else if (http_code == 404)
values.Add (ExceptionPageTemplate.Template_DetailsName, "No virtual path information available.");
else if (baseEx is HttpException) {
tmp = ((HttpException)baseEx).Description;
values.Add (ExceptionPageTemplate.Template_DetailsName, !String.IsNullOrEmpty (tmp) ? HtmlEncode (tmp) : "Web exception occurred but no additional error description given.");
} else {
var sb = new StringBuilder ("Non-web exception.");
tmp = baseEx.Source;
if (!String.IsNullOrEmpty (tmp))
sb.AppendFormat (" Exception origin (name of application or object): {0}.", HtmlEncode (tmp));
tmp = baseEx.HelpLink;
if (!String.IsNullOrEmpty (tmp))
sb.AppendFormat (" Additional information is available at {0}", HtmlEncode (tmp));
values.Add (ExceptionPageTemplate.Template_DetailsName, sb.ToString ());
}
if (showTrace)
values.Add (ExceptionPageTemplate.Template_StackTraceName, HtmlEncode (baseEx.StackTrace.ToString ()));
}