public AResult<bool> Create(string databaseName, List<AUser> users)
{
var request = new Request(HttpMethod.POST, ApiBaseUri.Database, "");
var bodyDocument = new Dictionary<string, object>();
// required: database name
bodyDocument.String("name", databaseName);
// optional: list of users
if ((users != null) && (users.Count > 0))
{
var userList = new List<Dictionary<string, object>>();
foreach (var user in users)
{
var userItem = new Dictionary<string, object>();
if (!string.IsNullOrEmpty(user.Username))
{
userItem.String("username", user.Username);
}
if (!string.IsNullOrEmpty(user.Password))
{
userItem.String("passwd", user.Password);
}
userItem.Bool("active", user.Active);
if (user.Extra != null)
{
userItem.Document("extra", user.Extra);
}
userList.Add(userItem);
}
bodyDocument.List("users", userList);
}
request.Body = JSON.ToJSON(bodyDocument, ASettings.JsonParameters);
var response = _connection.Send(request);
var result = new AResult<bool>(response);
switch (response.StatusCode)
{
case 201:
var body = response.ParseBody<Body<bool>>();
result.Success = (body != null);
result.Value = body.Result;
break;
case 400:
case 403:
case 404:
default:
// Arango error
break;
}
_parameters.Clear();
return result;
}