The Labs \ Source Viewer \ SSCLI \ System.Net \ NetRes

  1. //------------------------------------------------------------------------------
  2. // <copyright file="_NetRes.cs" company="Microsoft">
  3. //
  4. // Copyright (c) 2006 Microsoft Corporation. All rights reserved.
  5. //
  6. // The use and distribution terms for this software are contained in the file
  7. // named license.txt, which can be found in the root of this distribution.
  8. // By using this software in any fashion, you are agreeing to be bound by the
  9. // terms of this license.
  10. //
  11. // You must not remove this notice, or any other, from this software.
  12. //
  13. // </copyright>
  14. //------------------------------------------------------------------------------
  15. namespace System.Net
  16. {
  17.    
  18.     using System.Diagnostics;
  19.     using System.Globalization;
  20.    
  21.     internal class NetRes
  22.     {
  23.        
  24. /*++
  25.             Constructor
  26.             This is the constructor, marked private because this class shouldn't
  27.             be instantiated.
  28.         --*/       
  29.         private NetRes()
  30.         {
  31.         }
  32.        
  33. /*++
  34.             GetWebStatusString - Get a WebExceptionStatus-specific resource string
  35.             This method takes an input string and a WebExceptionStatus. We use the input
  36.             string as a key to find a status message and the webStatus to produce
  37.             a status-specific message, then we combine the two.
  38.             Input:
  39.                 Res            - Id for resource string.
  40.                 Status          - The WebExceptionStatus to be formatted.
  41.             Returns:
  42.                 string for localized message.
  43.         --*/       
  44.         public static string GetWebStatusString(string Res, WebExceptionStatus Status)
  45.         {
  46.             string Msg;
  47.             string StatusMsg;
  48.            
  49.             StatusMsg = SR.GetString(WebExceptionMapping.GetWebStatusString(Status));
  50.            
  51.             // Get the base status.
  52.            
  53.             Msg = SR.GetString(Res);
  54.            
  55.             // Format the status specific message into the base status and return
  56.             // that
  57.            
  58.             return String.Format(CultureInfo.CurrentCulture, Msg, StatusMsg);
  59.         }
  60.        
  61.         public static string GetWebStatusString(WebExceptionStatus Status)
  62.         {
  63.             return SR.GetString(WebExceptionMapping.GetWebStatusString(Status));
  64.         }
  65.        
  66.        
  67. /*++
  68.             GetWebStatusCodeString - Get a StatusCode-specific resource string
  69.             This method is used to map a HTTP status code to a specific user
  70.             readable error code.
  71.             Input:
  72.                 statusCode      - Id for resource string.
  73.                 Status          - The WebExceptionStatus to be formatted.
  74.             Returns:
  75.                 string for localized message.
  76.         --*/       
  77.         public static string GetWebStatusCodeString(HttpStatusCode statusCode, string statusDescription)
  78.         {
  79.             string webStatusCode = "(" + ((int)statusCode).ToString(NumberFormatInfo.InvariantInfo) + ")";
  80.             string statusMessage = null;
  81.             //
  82.             // Now combine the label with the base enum key and look up the status msg.
  83.             //
  84.             try {
  85.                 //
  86.                 // convert the HttpStatusCode to its label and look it up.
  87.                 //
  88.                 statusMessage = SR.GetString("net_httpstatuscode_" + statusCode.ToString(), null);
  89.             }
  90.             catch {
  91.             }
  92.            
  93.             if (statusMessage != null && statusMessage.Length > 0) {
  94.                 webStatusCode += " " + statusMessage;
  95.             }
  96.             else {
  97.                 //
  98.                 // Otherwise try to map the base status.
  99.                 //
  100.                 if (statusDescription != null && statusDescription.Length > 0) {
  101.                     webStatusCode += " " + statusDescription;
  102.                 }
  103.             }
  104.            
  105.             return webStatusCode;
  106.         }
  107.        
  108.         public static string GetWebStatusCodeString(FtpStatusCode statusCode, string statusDescription)
  109.         {
  110.             string webStatusCode = "(" + ((int)statusCode).ToString(NumberFormatInfo.InvariantInfo) + ")";
  111.             string statusMessage = null;
  112.             //
  113.             // Now combine the label with the base enum key and look up the status msg.
  114.             //
  115.             try {
  116.                 //
  117.                 // convert the HttpStatusCode to its label and look it up.
  118.                 //
  119.                 statusMessage = SR.GetString("net_ftpstatuscode_" + statusCode.ToString(), null);
  120.             }
  121.             catch {
  122.             }
  123.            
  124.             if (statusMessage != null && statusMessage.Length > 0) {
  125.                 webStatusCode += " " + statusMessage;
  126.             }
  127.             else {
  128.                 //
  129.                 // Otherwise try to map the base status.
  130.                 //
  131.                 if (statusDescription != null && statusDescription.Length > 0) {
  132.                     webStatusCode += " " + statusDescription;
  133.                 }
  134.             }
  135.            
  136.             return webStatusCode;
  137.         }
  138.     }
  139. }

Developer Fusion