/// <summary> /// Initializes the <see cref="CustomError" /> class. /// </summary> private CustomError() { siteErrors = new Dictionary <string, SiteErrors>(); //Read the configuration nodes foreach (XmlNode node in Factory.GetConfigNodes("sitesErrors/site")) { var siteName = XmlUtil.GetAttribute("name", node); var siteErrorsNode = XmlUtil.GetChildElement("errors", node); var defaultUrl = XmlUtil.GetAttribute("defaultUrl", siteErrorsNode); var customError = new SiteErrors { DefaultUrl = defaultUrl }; foreach (XmlNode cItem in siteErrorsNode.ChildNodes) { var statusCode = XmlUtil.GetAttribute("statusCode", cItem); var url = XmlUtil.GetAttribute("url", cItem); customError.Errors.Add(new Error { StatusCode = statusCode, Url = url }); } siteErrors.Add(siteName, customError); } }
/// <summary> /// Gets the site errors. /// </summary> /// <param name="siteName">Name of the site.</param> /// <returns>Return site errors.</returns> public SiteErrors GetSiteErrors(string siteName) { if (siteErrors.ContainsKey(siteName)) { return(siteErrors[siteName]); } return(SiteErrors.ConvertFrom(ConfigurationManager.GetSection("system.web/customErrors") as CustomErrorsSection)); }
/// <summary> /// Converts from. /// </summary> /// <param name="customErrorsSection">The custom errors section.</param> /// <returns></returns> public static SiteErrors ConvertFrom(CustomErrorsSection customErrorsSection) { var customErrors = new SiteErrors { DefaultUrl = customErrorsSection.DefaultRedirect }; foreach (var key in customErrorsSection.Errors.AllKeys) { customErrors.Errors.Add(new Error { StatusCode = key, Url = customErrorsSection.Errors.Get(key).Redirect }); } return(customErrors); }
/// <summary> /// Initializes a new instance of the <see cref="GlobalExceptionHandler"/> class. /// </summary> /// <param name="statusErrors">The custom errors.</param> public GlobalExceptionHandler(SiteErrors statusErrors) { this.statusErrors = statusErrors; }
/// <summary> /// Initializes a new instance of the <see cref="GlobalExceptionHandler"/> class. /// </summary> /// <param name="errorSection">The error section.</param> public GlobalExceptionHandler(CustomErrorsSection errorSection) : this(SiteErrors.ConvertFrom(errorSection)) { }