1 // Licensed to the .NET Foundation under one or more agreements.
2 // The .NET Foundation licenses this file to you under the MIT license.
3 // See the LICENSE file in the project root for more information.
4 
5 using System.Globalization;
6 
7 namespace System.Net
8 {
9     internal static class NetRes
10     {
GetWebStatusCodeString(FtpStatusCode statusCode, string statusDescription)11         public static string GetWebStatusCodeString(FtpStatusCode statusCode, string statusDescription)
12         {
13             string webStatusCode = "(" + ((int)statusCode).ToString(NumberFormatInfo.InvariantInfo) + ")";
14             string statusMessage = null;
15 
16             switch (statusCode)
17             {
18                 case FtpStatusCode.ServiceNotAvailable:
19                     statusMessage = SR.net_ftpstatuscode_ServiceNotAvailable;
20                     break;
21                 case FtpStatusCode.CantOpenData:
22                     statusMessage = SR.net_ftpstatuscode_CantOpenData;
23                     break;
24                 case FtpStatusCode.ConnectionClosed:
25                     statusMessage = SR.net_ftpstatuscode_ConnectionClosed;
26                     break;
27                 case FtpStatusCode.ActionNotTakenFileUnavailableOrBusy:
28                     statusMessage = SR.net_ftpstatuscode_ActionNotTakenFileUnavailableOrBusy;
29                     break;
30                 case FtpStatusCode.ActionAbortedLocalProcessingError:
31                     statusMessage = SR.net_ftpstatuscode_ActionAbortedLocalProcessingError;
32                     break;
33                 case FtpStatusCode.ActionNotTakenInsufficientSpace:
34                     statusMessage = SR.net_ftpstatuscode_ActionNotTakenInsufficientSpace;
35                     break;
36                 case FtpStatusCode.CommandSyntaxError:
37                     statusMessage = SR.net_ftpstatuscode_CommandSyntaxError;
38                     break;
39                 case FtpStatusCode.ArgumentSyntaxError:
40                     statusMessage = SR.net_ftpstatuscode_ArgumentSyntaxError;
41                     break;
42                 case FtpStatusCode.CommandNotImplemented:
43                     statusMessage = SR.net_ftpstatuscode_CommandNotImplemented;
44                     break;
45                 case FtpStatusCode.BadCommandSequence:
46                     statusMessage = SR.net_ftpstatuscode_BadCommandSequence;
47                     break;
48                 case FtpStatusCode.NotLoggedIn:
49                     statusMessage = SR.net_ftpstatuscode_NotLoggedIn;
50                     break;
51                 case FtpStatusCode.AccountNeeded:
52                     statusMessage = SR.net_ftpstatuscode_AccountNeeded;
53                     break;
54                 case FtpStatusCode.ActionNotTakenFileUnavailable:
55                     statusMessage = SR.net_ftpstatuscode_ActionNotTakenFileUnavailable;
56                     break;
57                 case FtpStatusCode.ActionAbortedUnknownPageType:
58                     statusMessage = SR.net_ftpstatuscode_ActionAbortedUnknownPageType;
59                     break;
60                 case FtpStatusCode.FileActionAborted:
61                     statusMessage = SR.net_ftpstatuscode_FileActionAborted;
62                     break;
63                 case FtpStatusCode.ActionNotTakenFilenameNotAllowed:
64                     statusMessage = SR.net_ftpstatuscode_ActionNotTakenFilenameNotAllowed;
65                     break;
66             }
67 
68             if (statusMessage != null && statusMessage.Length > 0)
69             {
70                 webStatusCode += " " + statusMessage;
71             }
72             else
73             {
74                 //
75                 // Otherwise try to map the base status.
76                 //
77                 if (statusDescription != null && statusDescription.Length > 0)
78                 {
79                     webStatusCode += " " + statusDescription;
80                 }
81             }
82 
83             return webStatusCode;
84         }
85     }
86 }
87 
88