diff options
Diffstat (limited to 'Common/XmlRpcCS/XmlRpcResponse.cs')
-rw-r--r-- | Common/XmlRpcCS/XmlRpcResponse.cs | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/Common/XmlRpcCS/XmlRpcResponse.cs b/Common/XmlRpcCS/XmlRpcResponse.cs new file mode 100644 index 0000000..8ff8354 --- /dev/null +++ b/Common/XmlRpcCS/XmlRpcResponse.cs | |||
@@ -0,0 +1,85 @@ | |||
1 | namespace Nwc.XmlRpc | ||
2 | { | ||
3 | using System; | ||
4 | using System.Collections; | ||
5 | using System.IO; | ||
6 | using System.Xml; | ||
7 | |||
8 | /// <summary>Class designed to represent an XML-RPC response.</summary> | ||
9 | public class XmlRpcResponse | ||
10 | { | ||
11 | private Object _value; | ||
12 | /// <summary><c>bool</c> indicating if this response represents a fault.</summary> | ||
13 | public bool IsFault; | ||
14 | |||
15 | /// <summary>Basic constructor</summary> | ||
16 | public XmlRpcResponse() | ||
17 | { | ||
18 | Value = null; | ||
19 | IsFault = false; | ||
20 | } | ||
21 | |||
22 | /// <summary>Constructor for a fault.</summary> | ||
23 | /// <param name="code"><c>int</c> the numeric faultCode value.</param> | ||
24 | /// <param name="message"><c>String</c> the faultString value.</param> | ||
25 | public XmlRpcResponse(int code, String message) | ||
26 | : this() | ||
27 | { | ||
28 | SetFault(code, message); | ||
29 | } | ||
30 | |||
31 | /// <summary>The data value of the response, may be fault data.</summary> | ||
32 | public Object Value | ||
33 | { | ||
34 | get { return _value; } | ||
35 | set | ||
36 | { | ||
37 | IsFault = false; | ||
38 | _value = value; | ||
39 | } | ||
40 | } | ||
41 | |||
42 | /// <summary>The faultCode if this is a fault.</summary> | ||
43 | public int FaultCode | ||
44 | { | ||
45 | get | ||
46 | { | ||
47 | if (!IsFault) | ||
48 | return 0; | ||
49 | else | ||
50 | return (int)((Hashtable)_value)[XmlRpcXmlTokens.FAULT_CODE]; | ||
51 | } | ||
52 | } | ||
53 | |||
54 | /// <summary>The faultString if this is a fault.</summary> | ||
55 | public String FaultString | ||
56 | { | ||
57 | get | ||
58 | { | ||
59 | if (!IsFault) | ||
60 | return ""; | ||
61 | else | ||
62 | return (String)((Hashtable)_value)[XmlRpcXmlTokens.FAULT_STRING]; | ||
63 | } | ||
64 | } | ||
65 | |||
66 | /// <summary>Set this response to be a fault.</summary> | ||
67 | /// <param name="code"><c>int</c> the numeric faultCode value.</param> | ||
68 | /// <param name="message"><c>String</c> the faultString value.</param> | ||
69 | public void SetFault(int code, String message) | ||
70 | { | ||
71 | Hashtable fault = new Hashtable(); | ||
72 | fault.Add("faultCode", code); | ||
73 | fault.Add("faultString", message); | ||
74 | Value = fault; | ||
75 | IsFault = true; | ||
76 | } | ||
77 | |||
78 | /// <summary>Form a useful string representation of the object, in this case the XML response.</summary> | ||
79 | /// <returns><c>String</c> The XML serialized XML-RPC response.</returns> | ||
80 | override public String ToString() | ||
81 | { | ||
82 | return XmlRpcResponseSerializer.Singleton.Serialize(this); | ||
83 | } | ||
84 | } | ||
85 | } | ||