-
Notifications
You must be signed in to change notification settings - Fork 50
/
CouchWebResponse.cs
46 lines (37 loc) · 1.31 KB
/
CouchWebResponse.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
using System.Net;
using Newtonsoft.Json.Linq;
namespace LoveSeat.Support
{
/// <summary>
/// Repersent a web response from CouchDB database.
/// </summary>
public class CouchWebResponse
{
private readonly string responseString;
private readonly HttpStatusCode statusCode;
private readonly string statusDescription;
private readonly string etag;
public CouchWebResponse(HttpWebResponse response)
{
responseString = response.GetResponseString();
statusCode = response.StatusCode;
statusDescription = response.StatusDescription;
etag = response.Headers["ETag"];
}
public string ResponseString { get { return responseString; } }
public HttpStatusCode StatusCode { get { return statusCode; } }
public string StatusDescription { get { return statusDescription; } }
public string ETag { get { return etag; } }
public CouchResponse GetJObject()
{
var resp = new CouchResponse(JObject.Parse(responseString));
resp.StatusCode = (int)statusCode;
return resp;
}
public Document GetCouchDocument()
{
var jobj = JObject.Parse(responseString);
return new Document(jobj);
}
}
}