-
Notifications
You must be signed in to change notification settings - Fork 4
/
BulkDocsCommand.cs
78 lines (61 loc) · 1.77 KB
/
BulkDocsCommand.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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using SineSignal.Ottoman.Exceptions;
using SineSignal.Ottoman.Http;
using SineSignal.Ottoman.Serialization;
namespace SineSignal.Ottoman.Commands
{
internal class BulkDocsCommand : ICouchCommand
{
private readonly BulkDocsMessage _message;
public string Route { get; private set; }
public string Operation { get; private set; }
public object Message
{
get { return _message; }
}
public HttpStatusCode SuccessStatusCode { get; private set; }
public BulkDocsCommand(string databaseName, BulkDocsMessage message)
{
Route = databaseName + "/_bulk_docs";
Operation = HttpMethod.Post;
_message = message;
SuccessStatusCode = HttpStatusCode.Created;
}
public void HandleError(string serverAddress, CommandErrorResult errorResult, UnexpectedHttpResponseException innerException)
{
throw new NotImplementedException();
}
}
internal class BulkDocsMessage
{
[JsonMember("non_atomic")]
public bool NonAtomic { get; private set; }
[JsonMember("all_or_nothing")]
public bool AllOrNothing { get; private set; }
[JsonMember("docs")]
public CouchDocument[] Docs { get; private set; }
public BulkDocsMessage(IEnumerable<CouchDocument> docs) : this(false, false, docs)
{
}
public BulkDocsMessage(bool nonAtomic, bool allOrNothing, IEnumerable<CouchDocument> docs)
{
NonAtomic = nonAtomic;
AllOrNothing = allOrNothing;
Docs = docs.ToArray();
}
}
internal class BulkDocsResult
{
[JsonMember("id")]
public string Id { get; set; }
[JsonMember("rev")]
public string Rev { get; set; }
[JsonMember("error")]
public string Error { get; set; }
[JsonMember("reason")]
public string Reason { get; set; }
}
}