public CustomErrorsRedirectType ParseCustomErrorsRedirectType(CustomErrorCollection customErrorCollection) { var customError = customErrorCollection[_statusCode.ToString()]; if (customError == null) { return EnumHelpers.GetDefaultEnumValue<CustomErrorsRedirectType>(); } var htmPage = string.Format(StaticPageFormatString, _statusCode); var mvcPage = string.Format(MvcPageFormatString, _statusCode); var aspxPage = string.Format(AspxPageFormatString, _statusCode); if (string.Equals(customError.Redirect, htmPage, StringComparison.OrdinalIgnoreCase)) { return CustomErrorsRedirectType.StaticErrorPage; } if (string.Equals(customError.Redirect, mvcPage, StringComparison.OrdinalIgnoreCase)) { return CustomErrorsRedirectType.MvcErrorPage; } if (string.Equals(customError.Redirect, aspxPage, StringComparison.OrdinalIgnoreCase)) { return CustomErrorsRedirectType.AspxErrorPage; } throw new Exception( string.Format("Failed to match redirect {0} for status code {1}.", customError.Redirect, _statusCode)); }
public void GetKey () { CustomErrorCollection col = new CustomErrorCollection (); col.Add (new CustomError (404, "http://404-error.com/")); Assert.AreEqual ("404", col.GetKey (0), "A1"); }
public void Set () { CustomErrorCollection col = new CustomErrorCollection (); col.Add (new CustomError (404, "http://404-error.com/")); col.Add (new CustomError (403, "http://403-error.com/")); col.Add (new CustomError (999, "http://403-error.com/")); col.Set (new CustomError (403, "http://403-error2.com/")); Assert.AreEqual (3, col.Count, "A1"); Assert.AreEqual (3, col.AllKeys.Length, "A2"); Assert.AreEqual ("http://403-error2.com/", col[1].Redirect, "A3"); }
public void SetToDuplicate () { CustomErrorCollection col = new CustomErrorCollection (); col.Add (new CustomError (404, "http://404-error.com/")); col.Add (new CustomError (403, "http://403-error.com/")); col.Add (new CustomError (999, "http://403-error.com/")); /* override the 999 entry with a duplicate 403 */ col[2] = new CustomError (403, "http://403-error2.com/"); Assert.AreEqual (3, col.Count, "A1"); Assert.AreEqual (3, col.AllKeys.Length, "A2"); Assert.AreEqual (403, col[1].StatusCode, "A3"); Assert.AreEqual ("http://403-error.com/", col[1].Redirect, "A4"); Assert.AreEqual (403, col[2].StatusCode, "A5"); Assert.AreEqual ("http://403-error2.com/", col[2].Redirect, "A6"); }
public static void Main() { // <Snippet1> // Get the Web application configuration. System.Configuration.Configuration configuration = WebConfigurationManager.OpenWebConfiguration( "/aspnetTest"); // Get the section. CustomErrorsSection customErrorsSection = (CustomErrorsSection)configuration.GetSection( "system.web/customErrors"); // Get the collection CustomErrorCollection customErrorsCollection = customErrorsSection.Errors; // </Snippet1> // <Snippet2> // Create a new CustomErrorCollection object. CustomErrorCollection newcustomErrorCollection = new System.Web.Configuration.CustomErrorCollection(); // </Snippet2> // <Snippet3> // Get the currentDefaultRedirect string currentDefaultRedirect = customErrorsSection.DefaultRedirect; // </Snippet3> // <Snippet4> // Using the Set method. CustomError newCustomError = new CustomError(404, "customerror404.htm"); // Update the configuration file. if (!customErrorsSection.SectionInformation.IsLocked) { // Add the new custom error to the collection. customErrorsCollection.Set(newCustomError); configuration.Save(); } // </Snippet4> // <Snippet5> // Using the Add method. CustomError newCustomError2 = new CustomError(404, "customerror404.htm"); // Update the configuration file. if (!customErrorsSection.SectionInformation.IsLocked) { // Add the new custom error to the collection. customErrorsCollection.Add(newCustomError2); configuration.Save(); } // </Snippet5> // <Snippet6> // Using the Clear method. if (!customErrorsSection.SectionInformation.IsLocked) { // Execute the Clear method. customErrorsCollection.Clear(); configuration.Save(); } // </Snippet6> // <Snippet7> // Using the Remove method. if (!customErrorsSection.SectionInformation.IsLocked) { // Remove the error with statuscode 404. customErrorsCollection.Remove("404"); configuration.Save(); } // </Snippet7> // <Snippet8> // Using method RemoveAt. if (!customErrorsSection.SectionInformation.IsLocked) { // Remove the error at 0 index customErrorsCollection.RemoveAt(0); configuration.Save(); } // </Snippet8> // <Snippet9> // Get the current Mode. CustomErrorsMode currentMode = customErrorsSection.Mode; // Set the current Mode. customErrorsSection.Mode = CustomErrorsMode.RemoteOnly; // </Snippet9> // <Snippet10> // Get the error with collection index 0. CustomError customError = customErrorsCollection[0]; // </Snippet10> // <Snippet11> // Get the error with status code 404. CustomError customError1 = customErrorsCollection["404"]; // </Snippet11> // <Snippet12> // Create a new CustomErrorsSection object. CustomErrorsSection newcustomErrorsSection = new CustomErrorsSection(); // </Snippet12> }
public void GetKey_OutOfRange () { CustomErrorCollection col = new CustomErrorCollection (); Assert.IsNull (col.GetKey(0), "A1"); }
public void AllKeys () { CustomErrorCollection col = new CustomErrorCollection (); col.Add (new CustomError (404, "http://404-error.com/")); col.Add (new CustomError (403, "http://403-error.com/")); col.Add (new CustomError (999, "http://403-error.com/")); Assert.AreEqual (3, col.AllKeys.Length, "A1"); Assert.AreEqual ("404", col.AllKeys[0], "A2"); Assert.AreEqual ("403", col.AllKeys[1], "A3"); Assert.AreEqual ("999", col.AllKeys[2], "A4"); }
public void DuplicateKeyInAdd () { CustomErrorCollection col = new CustomErrorCollection (); col.Add (new CustomError (404, "http://404-error.com/")); col.Add (new CustomError (404, "http://403-error.com/")); Assert.AreEqual (1, col.Count, "A1"); Assert.AreEqual (1, col.AllKeys.Length, "A2"); Assert.AreEqual ("http://403-error.com/", col[0].Redirect, "A3"); }