/// <summary> /// Creates new or replaces existing AQL user function with specified name and code. /// </summary> public AResult <bool> Register(string name, string code) { var request = new Request(HttpMethod.POST, ApiBaseUri.AqlFunction, ""); var bodyDocument = new Dictionary <string, object>(); // required bodyDocument.String(ParameterName.Name, name); // required bodyDocument.String(ParameterName.Code, code); // optional Request.TrySetBodyParameter(ParameterName.IsDeterministic, _parameters, bodyDocument); request.Body = JSON.ToJSON(bodyDocument, ASettings.JsonParameters); var response = _connection.Send(request); var result = new AResult <bool>(response); switch (response.StatusCode) { case 200: case 201: result.Success = true; result.Value = true; break; case 400: default: // Arango error break; } _parameters.Clear(); return(result); }
private static CommandMetadata ReadCommand(Dictionary <string, object> dict) { var met = new CommandMetadata { Key = (Identifier)dict.String("key"), Mode = (Identifier)dict.String("mode"), Alias = dict.String("alias"), Title = dict.String("title"), Shortcut = dict.String("shortcut") }; var obj = dict.Object("arguments") as List <object>; if (obj != null) { foreach (var a in obj) { var d = a as Dictionary <string, object>; if (d != null) { met.Arguments.Add(ReadArgument(d)); } } } return(met); }
/// <summary> /// Determines type of the index. /// </summary> public AIndex Type(AIndexType value) { // needs to be string value _parameters.String(ParameterName.Type, value.ToString().ToLower()); return(this); }
public static void GeneralUsage() { var document = new Dictionary <string, object>() .String("foo", "foo string value") .Int("bar", 12345) .String("embedded.foo", "embedded foo string value"); // document object would look in JSON representation as follows: // { // "foo": "foo string value", // "bar": 12345, // "embedded": { // "foo": "embedded foo string value" // } // } if (document.IsString("foo") && document.IsInt("bar") && document.IsString("embedded.foo")) { var foo = document.String("foo"); var bar = document.Int("bar"); var embeddedFoo = document.String("embedded.foo"); Console.WriteLine("{0}, {1}, {2}", foo, bar, embeddedFoo); } }
public static void NestedSetGetOperations() { var document = new Dictionary <string, object>() .String("string1", "string value 1") .String("foo.string2", "string value 2") .String("foo.bar.string3", "string value 3"); // JSON equivalent: // { // "string1": "string value 1", // "foo": { // "string2": "string value 2", // "bar": { // "string3": "string value 3" // } // } // } var string1 = document.String("string1"); var string2 = document.String("foo.string2"); var string3 = document.String("foo.bar.string3"); Console.WriteLine(string1); Console.WriteLine(string2); Console.WriteLine(string3); }
/// <summary> /// Determines whether to include document revision ids in the checksum calculation. Default value: false. /// </summary> public ACollection WithRevisions(bool value) { // needs to be in string format _parameters.String(ParameterName.WithRevisions, value.ToString().ToLower()); return(this); }
public void Show(Dictionary <string, object> dict) { Name.text = dict.String("winner"); if (dict.String("winnerid") == GameData.Shared.Uid) { Name.color = MaterialUI.MaterialColor.cyanA200; } else { Name.color = Color.white; } // 分数 var score = dict.Int("score"); Score.text = _.Num2CnDigit(score, true); Score.color = _.GetTextColor(score); // 底池 Pot.text = _.Num2CnDigit(dict.Int("pot")); // 牌型 var desc = Card.GetCardDesc(dict.Int("maxFiveRank")); var cardTypeParent = CardType.transform.parent.gameObject; if (string.IsNullOrEmpty(desc)) { cardTypeParent.SetActive(false); } else { cardTypeParent.SetActive(true); CardType.text = desc; } //omaha特殊处理 bool isOmaha = GameData.Shared.Type.Value == GameType.Omaha; CardContainers[2].gameObject.SetActive(isOmaha); CardContainers[3].gameObject.SetActive(isOmaha); HandCardsParent.spacing = isOmaha ? -46 : 6; // 手牌 var cards = dict.IL("cards"); if (cards.Count <= 0) { foreach (var card in CardContainers) { card.CardInstance.Turnback(); } return; } for (int i = 0; i < cards.Count; i++) { CardContainers[i].CardInstance.Show(cards[i]); } }
public void Init(Dictionary <string, object> gamerMes) { uid = gamerMes.String("uid"); enterLimit = gamerMes.Int("enter_limit") == 1; seatLimit = gamerMes.Int("seat_limit") == 1; talkLimit = gamerMes.Int("talk_limit") == 1; Name.text = gamerMes.String("name"); if (gamerMes.Bool("in_room")) { if (gamerMes.Int("seat") > -1) { State.text = "游戏中"; } else { State.text = "旁观中"; } } EnterLimitImg.color = enterLimit ? Color.white : unlimitCol; SeatLimitImg.color = seatLimit ? Color.white : unlimitCol; TalkLimitImg.color = talkLimit ? Color.white : unlimitCol; GamerAvatar.GetComponent <Avatar>().SetImage(gamerMes.String("avatar")); GamerAvatar.GetComponent <Avatar>().SetAlpha(gamerMes.Bool("in_room")); }
private static ArgumentMetadata ReadArgument(Dictionary <string, object> dict) { return(new ArgumentMetadata { Name = dict.String("name"), ValueProvider = (Identifier)dict.String("valueProvider"), Optional = dict.Bool("optional"), Affinity = dict.Enum <ArgumentAffinity>("affinity") }); }
/// <summary> /// Determines whether collection should be created if it does not exist. Default value: false. /// </summary> public AEdge CreateCollection(bool value) { // needs to be string value _parameters.String(ParameterName.CreateCollection, value.ToString().ToLower()); return(this); }
/// <summary> /// Determines whether or not to wait until data are synchronised to disk. Default value: false. /// </summary> public ADocument WaitForSync(bool value) { // needs to be string value _parameters.String(ParameterName.WaitForSync, value.ToString().ToLower()); return(this); }
public void Init(Dictionary <string, object> data, int maxPercent) { var player = GameData.Shared.FindPlayer(data.String("uid")); var outsNumber = data.Int("ct"); Name.text = player.Name; //omaha特殊处理 bool isOmaha = GameData.Shared.Type.Value == GameType.Omaha; CardContainers[2].gameObject.SetActive(isOmaha); CardContainers[3].gameObject.SetActive(isOmaha); CardsParent.spacing = isOmaha ? -46 : 8; for (int i = 0; i < player.Cards.Value.Count; i++) { CardContainers[i].CardInstance.Show(player.Cards.Value[i]); } Kind.text = outsNumber.ToString() + "张"; WinRateText.text = data.Int("win_rate") + "%"; string color = data.Int("win_rate") == maxPercent? "#ff1744" : "#868d94"; WinRateText.transform.parent.gameObject.SetActive(maxPercent != -1); WinRateText.transform.parent.GetComponent <ProceduralImage>().color = _.HexColor(color); }
public void Should_update_document_with_waitForSync() { var documents = Database.ClearCollectionAndFetchTestDocumentData(Database.TestDocumentCollectionName); var db = new ADatabase(Database.Alias); var document = new Dictionary <string, object>() .String("foo", "some other new string") .Int("bar", 54321) .Int("baz", 12345); var updateResult = db.Document .WaitForSync(true) .Update(documents[0].ID(), document); Assert.AreEqual(201, updateResult.StatusCode); Assert.IsTrue(updateResult.Success); Assert.IsTrue(updateResult.HasValue); Assert.AreEqual(updateResult.Value.ID(), documents[0].ID()); Assert.AreEqual(updateResult.Value.Key(), documents[0].Key()); Assert.AreNotEqual(updateResult.Value.Rev(), documents[0].Rev()); var getResult = db.Document .Get(updateResult.Value.ID()); Assert.AreEqual(getResult.Value.ID(), updateResult.Value.ID()); Assert.AreEqual(getResult.Value.Key(), updateResult.Value.Key()); Assert.AreEqual(getResult.Value.Rev(), updateResult.Value.Rev()); Assert.AreNotEqual(getResult.Value.String("foo"), documents[0].String("foo")); Assert.AreEqual(getResult.Value.String("foo"), document.String("foo")); Assert.AreNotEqual(getResult.Value.Int("bar"), documents[0].Int("bar")); Assert.AreEqual(getResult.Value.Int("bar"), document.Int("bar")); Assert.AreEqual(getResult.Value.Int("baz"), document.Int("baz")); }
public void Should_replace_document_with_ifMatch() { var documents = Database.ClearCollectionAndFetchTestDocumentData(Database.TestDocumentCollectionName); var db = new ADatabase(Database.Alias); var document = new Dictionary <string, object>() .String("foo", "some other new string") .Int("baz", 54321); var replaceResult = db.Document .IfMatch(documents[0].Rev()) .Replace(documents[0].ID(), document); Assert.AreEqual(202, replaceResult.StatusCode); Assert.IsTrue(replaceResult.Success); Assert.IsTrue(replaceResult.HasValue); Assert.AreEqual(replaceResult.Value.ID(), documents[0].ID()); Assert.AreEqual(replaceResult.Value.Key(), documents[0].Key()); Assert.AreNotEqual(replaceResult.Value.Rev(), documents[0].Rev()); var getResult = db.Document .Get(replaceResult.Value.ID()); Assert.AreEqual(getResult.Value.ID(), replaceResult.Value.ID()); Assert.AreEqual(getResult.Value.Key(), replaceResult.Value.Key()); Assert.AreEqual(getResult.Value.Rev(), replaceResult.Value.Rev()); Assert.AreNotEqual(getResult.Value.String("foo"), documents[0].String("foo")); Assert.AreEqual(getResult.Value.String("foo"), document.String("foo")); Assert.AreEqual(getResult.Value.Int("baz"), document.Int("baz")); Assert.IsFalse(getResult.Value.Has("bar")); }
public void Should_create_document_with_returnNew_parameter() { Database.ClearTestCollection(Database.TestDocumentCollectionName); var db = new ADatabase(Database.Alias); var document = new Dictionary <string, object>() .String("foo", "foo string value") .Int("bar", 12345); var createResult = db.Document .ReturnNew() .Create(Database.TestDocumentCollectionName, document); Assert.AreEqual(202, createResult.StatusCode); Assert.IsTrue(createResult.Success); Assert.IsTrue(createResult.HasValue); Assert.IsTrue(createResult.Value.IsString("_id")); Assert.IsTrue(createResult.Value.IsString("_key")); Assert.IsTrue(createResult.Value.IsString("_rev")); Assert.IsTrue(createResult.Value.Has("new")); Assert.AreEqual(createResult.Value.ID(), createResult.Value.String("new._id")); Assert.AreEqual(createResult.Value.Key(), createResult.Value.String("new._key")); Assert.AreEqual(createResult.Value.Rev(), createResult.Value.String("new._rev")); Assert.AreEqual(document.String("foo"), createResult.Value.String("new.foo")); Assert.AreEqual(document.Int("bar"), createResult.Value.Int("new.bar")); }
/// <summary> /// Determines whether system collections should be excluded from the result. /// </summary> public ADatabase ExcludeSystem(bool value) { // string because value will be stored in query string _parameters.String(ParameterName.ExcludeSystem, value.ToString().ToLower()); return(this); }
internal void TrySetQueryStringParameter(string parameterName, Dictionary <string, object> parameters) { if (parameters.ContainsKey(parameterName)) { QueryString.Add(parameterName, parameters.String(parameterName)); } }
/// <summary> /// Analyzes specified AQL query. /// </summary> public AResult <Dictionary <string, object> > Parse(string query) { var request = new Request(HttpMethod.POST, ApiBaseUri.Query, ""); var bodyDocument = new Dictionary <string, object>(); // required bodyDocument.String(ParameterName.Query, Minify(query)); request.Body = JSON.ToJSON(bodyDocument, ASettings.JsonParameters); var response = _connection.Send(request); var result = new AResult <Dictionary <string, object> >(response); switch (response.StatusCode) { case 200: if (response.DataType == DataType.Document) { result.Value = (response.Data as Dictionary <string, object>).CloneExcept("code", "error"); result.Success = (result.Value != null); } break; case 400: default: // Arango error break; } _parameters.Clear(); _bindVars.Clear(); _query.Clear(); return(result); }
private Response GetResponse() { var request = new Request(HttpMethod.POST, ApiBaseUri.Cursor, ""); var bodyDocument = new Dictionary <string, object>(); // required bodyDocument.String(ParameterName.Query, _query.ToString()); // optional Request.TrySetBodyParameter(ParameterName.Count, _parameters, bodyDocument); // optional Request.TrySetBodyParameter(ParameterName.BatchSize, _parameters, bodyDocument); // optional Request.TrySetBodyParameter(ParameterName.TTL, _parameters, bodyDocument); // optional if (_bindVars.Count > 0) { bodyDocument.Document(ParameterName.BindVars, _bindVars); } // TODO: options parameter request.Body = JSON.ToJSON(bodyDocument, ASettings.JsonParameters); //this.LastRequest = request.Body; var response = _connection.Send(request); if (response.StatusCode != 201) { throw new Exception("Arango returned: " + response.StatusCode + ": " + response.Error); } return(response); //this.LastResponse = response.Body; }
public static void DateTimeSetGetOperations() { var document = new Dictionary <string, object>() // stored as native DateTime object .DateTime("dateTime1", DateTime.UtcNow) // stored in default yyyy-MM-ddTHH:mm:ss.fffZ string format .DateTime("dateTime2", DateTime.UtcNow, DateTimeFormat.String) // stored in unix timestamp format as long type .DateTime("dateTime3", DateTime.UtcNow, DateTimeFormat.UnixTimeStamp); // standard get operations var dateTime = document.DateTime("dateTime1"); var dateTimeAsString = document.String("dateTime2"); var dateTimeAsLong = document.Long("dateTime3"); // automatic conversion var stringConvertedToDateTime = document.DateTime("dateTime2"); var longConvertedToDateTime = document.DateTime("dateTime3"); Console.WriteLine(dateTime.ToString()); Console.WriteLine(dateTimeAsString); Console.WriteLine(dateTimeAsLong); Console.WriteLine(stringConvertedToDateTime.ToString()); Console.WriteLine(longConvertedToDateTime.ToString()); }
public void Should_update_document_with_ifMatch_and_lastUpdatePolicy() { var documents = Database.ClearCollectionAndFetchTestDocumentData(Database.TestDocumentCollectionName); var db = new ADatabase(Database.Alias); var document = new Dictionary <string, object>() .String("foo", "some other new string") .Int("bar", 54321) .Int("baz", 12345); var updateResult = db.Document .IfMatch("123456789", AUpdatePolicy.Last) .Update(documents[0].String("_id"), document); Assert.AreEqual(202, updateResult.StatusCode); Assert.IsTrue(updateResult.Success); Assert.IsTrue(updateResult.HasValue); Assert.AreEqual(updateResult.Value.String("_id"), documents[0].String("_id")); Assert.AreEqual(updateResult.Value.String("_key"), documents[0].String("_key")); Assert.AreNotEqual(updateResult.Value.String("_rev"), documents[0].String("_rev")); var getResult = db.Document .Get(updateResult.Value.String("_id")); Assert.AreEqual(getResult.Value.String("_id"), updateResult.Value.String("_id")); Assert.AreEqual(getResult.Value.String("_key"), updateResult.Value.String("_key")); Assert.AreEqual(getResult.Value.String("_rev"), updateResult.Value.String("_rev")); Assert.AreNotEqual(getResult.Value.String("foo"), documents[0].String("foo")); Assert.AreEqual(getResult.Value.String("foo"), document.String("foo")); Assert.AreNotEqual(getResult.Value.Int("bar"), documents[0].Int("bar")); Assert.AreEqual(getResult.Value.Int("bar"), document.Int("bar")); Assert.AreEqual(getResult.Value.Int("baz"), document.Int("baz")); }
internal void TrySetHeaderParameter(string parameterName, Dictionary<string, object> parameters) { if (parameters.ContainsKey(parameterName)) { Headers.Add(parameterName, parameters.String(parameterName)); } }
/// <summary> /// Executes specified transaction. /// </summary> public AResult <T> Execute <T>(string action) { var request = new Request(HttpMethod.POST, ApiBaseUri.Transaction, ""); var bodyDocument = new Dictionary <string, object>(); // required bodyDocument.String(ParameterName.Action, action); // required if (_readCollections.Count > 0) { bodyDocument.List(ParameterName.Collections + ".read", _readCollections); } // required if (_writeCollections.Count > 0) { bodyDocument.List(ParameterName.Collections + ".write", _writeCollections); } // optional Request.TrySetBodyParameter(ParameterName.WaitForSync, _parameters, bodyDocument); // optional Request.TrySetBodyParameter(ParameterName.LockTimeout, _parameters, bodyDocument); // optional if (_transactionParams.Count > 0) { bodyDocument.Document(ParameterName.Params, _transactionParams); } request.Body = JSON.ToJSON(bodyDocument, ASettings.JsonParameters); var response = _connection.Send(request); var result = new AResult <T>(response); switch (response.StatusCode) { case 200: if (response.DataType == DataType.Document) { var transaction = (response.Data as Dictionary <string, object>).ToObject <Transaction <T> >(); result.Value = transaction.result; result.Success = (result.Value != null); } break; case 400: case 404: case 409: case 500: default: // Arango error break; } _parameters.Clear(); _readCollections.Clear(); _writeCollections.Clear(); _transactionParams.Clear(); return(result); }
public static T Enum <T>(this Dictionary <string, object> dict, string key) where T : struct { var str = dict.String(key); T res; System.Enum.TryParse <T>(str, true, out res); return(res); }
/// <summary> /// Creates new collection in current database context. /// </summary> public AResult <Dictionary <string, object> > Create(string collectionName) { var request = new Request(HttpMethod.POST, ApiBaseUri.Collection, ""); var bodyDocument = new Dictionary <string, object>(); // required bodyDocument.String(ParameterName.Name, collectionName); // optional Request.TrySetBodyParameter(ParameterName.Type, _parameters, bodyDocument); // optional Request.TrySetBodyParameter(ParameterName.WaitForSync, _parameters, bodyDocument); // optional Request.TrySetBodyParameter(ParameterName.JournalSize, _parameters, bodyDocument); // optional Request.TrySetBodyParameter(ParameterName.DoCompact, _parameters, bodyDocument); // optional Request.TrySetBodyParameter(ParameterName.IsSystem, _parameters, bodyDocument); // optional Request.TrySetBodyParameter(ParameterName.IsVolatile, _parameters, bodyDocument); // optional Request.TrySetBodyParameter(ParameterName.KeyOptionsType, _parameters, bodyDocument); // optional Request.TrySetBodyParameter(ParameterName.KeyOptionsAllowUserKeys, _parameters, bodyDocument); // optional Request.TrySetBodyParameter(ParameterName.KeyOptionsIncrement, _parameters, bodyDocument); // optional Request.TrySetBodyParameter(ParameterName.KeyOptionsOffset, _parameters, bodyDocument); // optional Request.TrySetBodyParameter(ParameterName.NumberOfShards, _parameters, bodyDocument); // optional Request.TrySetBodyParameter(ParameterName.ShardKeys, _parameters, bodyDocument); request.Body = JSON.ToJSON(bodyDocument, ASettings.JsonParameters); var response = _connection.Send(request); var result = new AResult <Dictionary <string, object> >(response); switch (response.StatusCode) { case 200: if (response.DataType == DataType.Document) { result.Value = (response.Data as Dictionary <string, object>); result.Success = (result.Value != null); } break; default: // Arango error break; } _parameters.Clear(); return(result); }
public GameOverJson(Dictionary <string, object> dict) { prize = dict.Int("prize"); chips = dict.Int("chips"); uid = dict.String("uid"); seat = dict.Int("seat"); cards = dict.IL("cards"); maxFiveRank = dict.Int("maxFiveRank"); bury_card = dict.Int("bury_card") == 1; }
public void Init(Dictionary <string, object> data) { var code = GameData.Shared.GameCode.Value = data.String("code"); var name = GameData.Shared.RoomName.Value = data.String("name"); avatar.SetImage(GameData.Shared.Avatar); var dt = data.Dict("myself"); coins.text = _.Num2CnDigit(dt.Int("bankroll")); ts = data.Int("left_time"); setTime(); RoomName.text = name; var codeGo = inviteCode.transform.parent.gameObject; if (string.IsNullOrEmpty(code)) { codeGo.SetActive(false); } else { codeGo.SetActive(true); inviteCode.text = code; } if (disposable != null) { disposable.Dispose(); } disposable = Observable.Interval(TimeSpan.FromSeconds(1)).Where((_) => ts > 0).Subscribe((_) => { ts--; setTime(); if (ts <= 0) { disposable.Dispose(); } }).AddTo(this); }
public void Should_update_document_with_mergeArrays_set_to_false() { var db = new ADatabase(Database.Alias); var newDocument = new Dictionary <string, object>() .String("foo", "some string") .Document("bar", new Dictionary <string, object>().String("foo", "string value")); var createResult = db.Document .Create(Database.TestDocumentCollectionName, newDocument); newDocument.Merge(createResult.Value); var document = new Dictionary <string, object>() .String("foo", "some other new string") .Document("bar", new Dictionary <string, object>().String("bar", "other string value")); var updateResult = db.Document .MergeObjects(false) .Update(newDocument.String("_id"), document); Assert.AreEqual(202, updateResult.StatusCode); Assert.IsTrue(updateResult.Success); Assert.IsTrue(updateResult.HasValue); Assert.AreEqual(updateResult.Value.String("_id"), newDocument.String("_id")); Assert.AreEqual(updateResult.Value.String("_key"), newDocument.String("_key")); Assert.AreNotEqual(updateResult.Value.String("_rev"), newDocument.String("_rev")); var getResult = db.Document .Get(updateResult.Value.String("_id")); Assert.AreEqual(getResult.Value.String("_id"), updateResult.Value.String("_id")); Assert.AreEqual(getResult.Value.String("_key"), updateResult.Value.String("_key")); Assert.AreEqual(getResult.Value.String("_rev"), updateResult.Value.String("_rev")); Assert.AreNotEqual(getResult.Value.String("foo"), newDocument.String("foo")); Assert.AreEqual(getResult.Value.String("foo"), document.String("foo")); Assert.IsFalse(getResult.Value.Has("bar.foo")); Assert.IsTrue(getResult.Value.Has("bar.bar")); }
public void Should_create_document_with_custom_ID() { Database.ClearTestCollection(Database.TestDocumentCollectionName); var db = new ADatabase(Database.Alias); var document = new Dictionary <string, object>() .String("_key", "1234-5678") .String("foo", "foo string value") .Int("bar", 12345); var createResult = db.Document .Create(Database.TestDocumentCollectionName, document); Assert.AreEqual(202, createResult.StatusCode); Assert.IsTrue(createResult.Success); Assert.IsTrue(createResult.HasValue); Assert.AreEqual(Database.TestDocumentCollectionName + "/" + document.String("_key"), createResult.Value.String("_id")); Assert.AreEqual(document.String("_key"), createResult.Value.String("_key")); Assert.IsTrue(createResult.Value.IsString("_rev")); }
public void Should_serialize_guid() { var doc = new Dictionary <string, object>() .Guid("MyGuid1", Guid.NewGuid()) .String("MyGuid2", Guid.NewGuid().ToString()); var entity = doc.ToObject <GuidEntity>(); Assert.AreEqual(doc.Guid("MyGuid1").ToString(), entity.MyGuid1.ToString()); Assert.AreEqual(doc.String("MyGuid2"), entity.MyGuid2.ToString()); }
private void CopyExtraBodyFields <T>(Body <T> source, Dictionary <string, object> destination) { destination.String("id", source.ID); destination.Long("count", source.Count); destination.Bool("cached", source.Cached); if (source.Extra != null) { destination.Document("extra", (Dictionary <string, object>)source.Extra); } }
public void Should_update_edge_with_generic_object() { Database.ClearTestCollection(Database.TestEdgeCollectionName); var db = new ADatabase(Database.Alias); var document = new Dictionary<string, object>() .String("foo", "some string") .Int("bar", 12345); var createResult = db.Edge .Create(Database.TestEdgeCollectionName, _documents[0].String("_id"), _documents[1].String("_id"), document); var dummy = new Dummy(); dummy.Foo = "some other new string"; dummy.Bar = 54321; dummy.Baz = 12345; var updateResult = db.Edge .Update(createResult.Value.String("_id"), dummy); Assert.AreEqual(202, updateResult.StatusCode); Assert.IsTrue(updateResult.Success); Assert.IsTrue(updateResult.HasValue); Assert.AreEqual(updateResult.Value.String("_id"), createResult.Value.String("_id")); Assert.AreEqual(updateResult.Value.String("_key"), createResult.Value.String("_key")); Assert.AreNotEqual(updateResult.Value.String("_rev"), createResult.Value.String("_rev")); var getResult = db.Edge .Get(updateResult.Value.String("_id")); Assert.AreEqual(getResult.Value.String("_id"), updateResult.Value.String("_id")); Assert.AreEqual(getResult.Value.String("_key"), updateResult.Value.String("_key")); Assert.AreEqual(getResult.Value.String("_rev"), updateResult.Value.String("_rev")); Assert.AreNotEqual(getResult.Value.String("foo"), document.String("foo")); Assert.AreEqual(getResult.Value.String("foo"), dummy.Foo); Assert.AreNotEqual(getResult.Value.Int("bar"), document.Int("bar")); Assert.AreEqual(getResult.Value.Int("bar"), dummy.Bar); Assert.AreEqual(getResult.Value.Int("baz"), dummy.Baz); }
public void Should_update_edge_with_ifMatch() { Database.ClearTestCollection(Database.TestEdgeCollectionName); var db = new ADatabase(Database.Alias); var document = new Dictionary<string, object>() .String("foo", "some string") .Int("bar", 12345); var createResult = db.Edge .Create(Database.TestEdgeCollectionName, _documents[0].String("_id"), _documents[1].String("_id"), document); var newDocument = new Dictionary<string, object>() .String("foo", "some other new string") .Int("bar", 54321) .Int("baz", 12345); var updateResult = db.Edge .IfMatch(createResult.Value.String("_rev")) .Update(createResult.Value.String("_id"), newDocument); Assert.AreEqual(202, updateResult.StatusCode); Assert.IsTrue(updateResult.Success); Assert.IsTrue(updateResult.HasValue); Assert.AreEqual(updateResult.Value.String("_id"), createResult.Value.String("_id")); Assert.AreEqual(updateResult.Value.String("_key"), createResult.Value.String("_key")); Assert.AreNotEqual(updateResult.Value.String("_rev"), createResult.Value.String("_rev")); var getResult = db.Edge .Get(updateResult.Value.String("_id")); Assert.AreEqual(getResult.Value.String("_id"), updateResult.Value.String("_id")); Assert.AreEqual(getResult.Value.String("_key"), updateResult.Value.String("_key")); Assert.AreEqual(getResult.Value.String("_rev"), updateResult.Value.String("_rev")); Assert.AreNotEqual(getResult.Value.String("foo"), document.String("foo")); Assert.AreEqual(getResult.Value.String("foo"), newDocument.String("foo")); Assert.AreNotEqual(getResult.Value.Int("bar"), document.Int("bar")); Assert.AreEqual(getResult.Value.Int("bar"), newDocument.Int("bar")); // by default JSON integers are deserialized to long type Assert.IsTrue(getResult.Value.IsLong("baz")); }
public void Should_update_edge_with_mergeArrays_set_to_true() { Database.ClearTestCollection(Database.TestEdgeCollectionName); var db = new ADatabase(Database.Alias); var document = new Dictionary<string, object>() .String("foo", "some string") .Document("bar", new Dictionary<string, object>().String("foo", "string value")); var createResult = db.Edge .Create(Database.TestEdgeCollectionName, _documents[0].String("_id"), _documents[1].String("_id"), document); document.Merge(createResult.Value); var newDocument = new Dictionary<string, object>() .String("foo", "some other new string") .Document("bar", new Dictionary<string, object>().String("bar", "other string value")); var updateResult = db.Edge .MergeObjects(true) // this is also default behavior .Update(createResult.Value.String("_id"), newDocument); Assert.AreEqual(202, updateResult.StatusCode); Assert.IsTrue(updateResult.Success); Assert.IsTrue(updateResult.HasValue); Assert.AreEqual(updateResult.Value.String("_id"), document.String("_id")); Assert.AreEqual(updateResult.Value.String("_key"), document.String("_key")); Assert.AreNotEqual(updateResult.Value.String("_rev"), document.String("_rev")); var getResult = db.Document .Get(updateResult.Value.String("_id")); Assert.AreEqual(getResult.Value.String("_id"), updateResult.Value.String("_id")); Assert.AreEqual(getResult.Value.String("_key"), updateResult.Value.String("_key")); Assert.AreEqual(getResult.Value.String("_rev"), updateResult.Value.String("_rev")); Assert.AreNotEqual(getResult.Value.String("foo"), document.String("foo")); Assert.AreEqual(getResult.Value.String("foo"), newDocument.String("foo")); Assert.IsTrue(getResult.Value.Has("bar.foo")); Assert.IsTrue(getResult.Value.Has("bar.bar")); }
public void Should_update_edge_with_keepNull() { Database.ClearTestCollection(Database.TestEdgeCollectionName); var db = new ADatabase(Database.Alias); var document = new Dictionary<string, object>() .String("foo", "some string") .Object("bar", null); var createResult = db.Edge .Create(Database.TestEdgeCollectionName, _documents[0].String("_id"), _documents[1].String("_id"), document); document.Merge(createResult.Value); var newDocument = new Dictionary<string, object>() .String("foo", "some other new string") .Object("baz", null); var updateResult = db.Edge .KeepNull(false) .Update(createResult.Value.String("_id"), newDocument); Assert.AreEqual(202, updateResult.StatusCode); Assert.IsTrue(updateResult.Success); Assert.IsTrue(updateResult.HasValue); Assert.AreEqual(updateResult.Value.String("_id"), document.String("_id")); Assert.AreEqual(updateResult.Value.String("_key"), document.String("_key")); Assert.AreNotEqual(updateResult.Value.String("_rev"), document.String("_rev")); var getResult = db.Document .Get(updateResult.Value.String("_id")); Assert.AreEqual(getResult.Value.String("_id"), updateResult.Value.String("_id")); Assert.AreEqual(getResult.Value.String("_key"), updateResult.Value.String("_key")); Assert.AreEqual(getResult.Value.String("_rev"), updateResult.Value.String("_rev")); Assert.AreNotEqual(getResult.Value.String("foo"), document.String("foo")); Assert.AreEqual(getResult.Value.String("foo"), newDocument.String("foo")); Assert.IsTrue(getResult.Value.Has("bar")); Assert.IsFalse(getResult.Value.Has("baz")); }
public void Should_get_edge_as_generic_object() { Database.ClearTestCollection(Database.TestEdgeCollectionName); var db = new ADatabase(Database.Alias); var document = new Dictionary<string, object>() .String("foo", "foo string value") .Int("bar", 12345); var createResult = db.Edge .Create(Database.TestEdgeCollectionName, _documents[0].String("_id"), _documents[1].String("_id"), document); var getResult = db.Edge .Get<Dummy>(createResult.Value.String("_id")); Assert.AreEqual(200, getResult.StatusCode); Assert.IsTrue(getResult.Success); Assert.IsTrue(getResult.HasValue); Assert.AreEqual(document.String("foo"), getResult.Value.Foo); Assert.AreEqual(document.Int("bar"), getResult.Value.Bar); Assert.AreEqual(0, getResult.Value.Baz); }
public void Should_update_document_with_keepNull() { var db = new ADatabase(Database.Alias); var newDocument = new Dictionary<string, object>() .String("foo", "some string") .Object("bar", null); var createResult = db.Document .Create(Database.TestDocumentCollectionName, newDocument); newDocument.Merge(createResult.Value); var document = new Dictionary<string, object>() .String("foo", "some other new string") .Object("baz", null); var updateResult = db.Document .KeepNull(false) .Update(newDocument.ID(), document); Assert.AreEqual(202, updateResult.StatusCode); Assert.IsTrue(updateResult.Success); Assert.IsTrue(updateResult.HasValue); Assert.AreEqual(updateResult.Value.ID(), newDocument.ID()); Assert.AreEqual(updateResult.Value.Key(), newDocument.Key()); Assert.AreNotEqual(updateResult.Value.Rev(), newDocument.Rev()); var getResult = db.Document .Get(updateResult.Value.ID()); Assert.AreEqual(getResult.Value.ID(), updateResult.Value.ID()); Assert.AreEqual(getResult.Value.Key(), updateResult.Value.Key()); Assert.AreEqual(getResult.Value.Rev(), updateResult.Value.Rev()); Assert.AreNotEqual(getResult.Value.String("foo"), newDocument.String("foo")); Assert.AreEqual(getResult.Value.String("foo"), document.String("foo")); Assert.IsTrue(getResult.Value.Has("bar")); Assert.IsFalse(getResult.Value.Has("baz")); }
public void Should_replace_edge_with_ifMatch_and_return_412() { Database.ClearTestCollection(Database.TestEdgeCollectionName); var db = new ADatabase(Database.Alias); var document = new Dictionary<string, object>() .String("foo", "some string") .Int("bar", 12345); var createResult = db.Edge .Create(Database.TestEdgeCollectionName, _documents[0].String("_id"), _documents[1].String("_id"), document); document.Merge(createResult.Value); var newDocument = new Dictionary<string, object>() .String("foo", "some other new string") .Int("baz", 54321); var replaceResult = db.Edge .IfMatch("123456789") .Replace(createResult.Value.String("_id"), newDocument); Assert.AreEqual(412, replaceResult.StatusCode); Assert.IsFalse(replaceResult.Success); Assert.IsTrue(replaceResult.HasValue); Assert.AreEqual(replaceResult.Value.String("_id"), document.String("_id")); Assert.AreEqual(replaceResult.Value.String("_key"), document.String("_key")); Assert.AreEqual(replaceResult.Value.String("_rev"), document.String("_rev")); }
public void Should_update_document_with_waitForSync() { var documents = Database.ClearCollectionAndFetchTestDocumentData(Database.TestDocumentCollectionName); var db = new ADatabase(Database.Alias); var document = new Dictionary<string, object>() .String("foo", "some other new string") .Int("bar", 54321) .Int("baz", 12345); var updateResult = db.Document .WaitForSync(true) .Update(documents[0].String("_id"), document); Assert.AreEqual(201, updateResult.StatusCode); Assert.IsTrue(updateResult.Success); Assert.IsTrue(updateResult.HasValue); Assert.AreEqual(updateResult.Value.String("_id"), documents[0].String("_id")); Assert.AreEqual(updateResult.Value.String("_key"), documents[0].String("_key")); Assert.AreNotEqual(updateResult.Value.String("_rev"), documents[0].String("_rev")); var getResult = db.Document .Get(updateResult.Value.String("_id")); Assert.AreEqual(getResult.Value.String("_id"), updateResult.Value.String("_id")); Assert.AreEqual(getResult.Value.String("_key"), updateResult.Value.String("_key")); Assert.AreEqual(getResult.Value.String("_rev"), updateResult.Value.String("_rev")); Assert.AreNotEqual(getResult.Value.String("foo"), documents[0].String("foo")); Assert.AreEqual(getResult.Value.String("foo"), document.String("foo")); Assert.AreNotEqual(getResult.Value.Int("bar"), documents[0].Int("bar")); Assert.AreEqual(getResult.Value.Int("bar"), document.Int("bar")); Assert.AreEqual(getResult.Value.Int("baz"), document.Int("baz")); }
public void Should_replace_edge_with_ifMatch() { Database.ClearTestCollection(Database.TestEdgeCollectionName); var db = new ADatabase(Database.Alias); var document = new Dictionary<string, object>() .String("foo", "some string") .Int("bar", 12345); var createResult = db .Document .CreateEdge(Database.TestEdgeCollectionName, _documents[0].ID(), _documents[1].ID(), document); document.Merge(createResult.Value); var newDocument = new Dictionary<string, object>() .From(_documents[0].ID()) .To(_documents[1].ID()) .String("foo", "some other new string") .Int("baz", 54321); var replaceResult = db .Document .IfMatch(document.Rev()) .Replace(createResult.Value.ID(), newDocument); Assert.AreEqual(202, replaceResult.StatusCode); Assert.IsTrue(replaceResult.Success); Assert.IsTrue(replaceResult.HasValue); Assert.AreEqual(replaceResult.Value.ID(), document.ID()); Assert.AreEqual(replaceResult.Value.Key(), document.Key()); Assert.AreNotEqual(replaceResult.Value.Rev(), document.Rev()); var getResult = db .Document .Get(replaceResult.Value.ID()); Assert.AreEqual(getResult.Value.ID(), replaceResult.Value.ID()); Assert.AreEqual(getResult.Value.Key(), replaceResult.Value.Key()); Assert.AreEqual(getResult.Value.Rev(), replaceResult.Value.Rev()); Assert.AreNotEqual(getResult.Value.String("foo"), document.String("foo")); Assert.AreEqual(getResult.Value.String("foo"), newDocument.String("foo")); Assert.AreEqual(getResult.Value.Int("baz"), newDocument.Int("baz")); Assert.IsFalse(getResult.Value.Has("bar")); }
public void Should_replace_document_with_waitForSync() { var documents = Database.ClearCollectionAndFetchTestDocumentData(Database.TestDocumentCollectionName); var db = new ADatabase(Database.Alias); var document = new Dictionary<string, object>() .String("foo", "some other new string") .Int("baz", 54321); var replaceResult = db.Document .WaitForSync(true) .Replace(documents[0].ID(), document); Assert.AreEqual(201, replaceResult.StatusCode); Assert.IsTrue(replaceResult.Success); Assert.IsTrue(replaceResult.HasValue); Assert.AreEqual(replaceResult.Value.ID(), documents[0].ID()); Assert.AreEqual(replaceResult.Value.Key(), documents[0].Key()); Assert.AreNotEqual(replaceResult.Value.Rev(), documents[0].Rev()); var getResult = db.Document .Get(replaceResult.Value.ID()); Assert.AreEqual(getResult.Value.ID(), replaceResult.Value.ID()); Assert.AreEqual(getResult.Value.Key(), replaceResult.Value.Key()); Assert.AreEqual(getResult.Value.Rev(), replaceResult.Value.Rev()); Assert.AreNotEqual(getResult.Value.String("foo"), documents[0].String("foo")); Assert.AreEqual(getResult.Value.String("foo"), document.String("foo")); Assert.AreEqual(getResult.Value.Int("baz"), document.Int("baz")); Assert.IsFalse(getResult.Value.Has("bar")); }
public void Should_create_document_with_custom_ID() { Database.ClearTestCollection(Database.TestDocumentCollectionName); var db = new ADatabase(Database.Alias); var document = new Dictionary<string, object>() .String("_key", "1234-5678") .String("foo", "foo string value") .Int("bar", 12345); var createResult = db.Document .Create(Database.TestDocumentCollectionName, document); Assert.AreEqual(202, createResult.StatusCode); Assert.IsTrue(createResult.Success); Assert.IsTrue(createResult.HasValue); Assert.AreEqual(Database.TestDocumentCollectionName + "/" + document.String("_key"), createResult.Value.String("_id")); Assert.AreEqual(document.String("_key"), createResult.Value.String("_key")); Assert.IsTrue(createResult.Value.IsString("_rev")); }
public void Should_update_document_with_mergeArrays_set_to_false() { var db = new ADatabase(Database.Alias); var newDocument = new Dictionary<string, object>() .String("foo", "some string") .Document("bar", new Dictionary<string, object>().String("foo", "string value")); var createResult = db.Document .Create(Database.TestDocumentCollectionName, newDocument); newDocument.Merge(createResult.Value); var document = new Dictionary<string, object>() .String("foo", "some other new string") .Document("bar", new Dictionary<string, object>().String("bar", "other string value")); var updateResult = db.Document .MergeObjects(false) .Update(newDocument.String("_id"), document); Assert.AreEqual(202, updateResult.StatusCode); Assert.IsTrue(updateResult.Success); Assert.IsTrue(updateResult.HasValue); Assert.AreEqual(updateResult.Value.String("_id"), newDocument.String("_id")); Assert.AreEqual(updateResult.Value.String("_key"), newDocument.String("_key")); Assert.AreNotEqual(updateResult.Value.String("_rev"), newDocument.String("_rev")); var getResult = db.Document .Get(updateResult.Value.String("_id")); Assert.AreEqual(getResult.Value.String("_id"), updateResult.Value.String("_id")); Assert.AreEqual(getResult.Value.String("_key"), updateResult.Value.String("_key")); Assert.AreEqual(getResult.Value.String("_rev"), updateResult.Value.String("_rev")); Assert.AreNotEqual(getResult.Value.String("foo"), newDocument.String("foo")); Assert.AreEqual(getResult.Value.String("foo"), document.String("foo")); Assert.IsFalse(getResult.Value.Has("bar.foo")); Assert.IsTrue(getResult.Value.Has("bar.bar")); }
public void Should_replace_edge_with_waitForSync() { Database.ClearTestCollection(Database.TestEdgeCollectionName); var db = new ADatabase(Database.Alias); var document = new Dictionary<string, object>() .String("foo", "some string") .Int("bar", 12345); var createResult = db.Edge .Create(Database.TestEdgeCollectionName, _documents[0].String("_id"), _documents[1].String("_id"), document); var newDocument = new Dictionary<string, object>() .String("foo", "some other new string") .Int("baz", 54321); var replaceResult = db.Edge .WaitForSync(true) .Replace(createResult.Value.String("_id"), newDocument); Assert.AreEqual(201, replaceResult.StatusCode); Assert.IsTrue(replaceResult.Success); Assert.IsTrue(replaceResult.HasValue); Assert.AreEqual(replaceResult.Value.String("_id"), createResult.Value.String("_id")); Assert.AreEqual(replaceResult.Value.String("_key"), createResult.Value.String("_key")); Assert.AreNotEqual(replaceResult.Value.String("_rev"), createResult.Value.String("_rev")); var getResult = db.Edge .Get(replaceResult.Value.String("_id")); Assert.AreEqual(getResult.Value.String("_id"), replaceResult.Value.String("_id")); Assert.AreEqual(getResult.Value.String("_key"), replaceResult.Value.String("_key")); Assert.AreEqual(getResult.Value.String("_rev"), replaceResult.Value.String("_rev")); Assert.AreNotEqual(getResult.Value.String("foo"), document.String("foo")); Assert.AreEqual(getResult.Value.String("foo"), newDocument.String("foo")); Assert.AreEqual(getResult.Value.Int("baz"), newDocument.Int("baz")); Assert.IsFalse(getResult.Value.Has("bar")); }
public void Should_replace_edge_with_generic_object() { Database.ClearTestCollection(Database.TestEdgeCollectionName); var db = new ADatabase(Database.Alias); var document = new Dictionary<string, object>() .String("foo", "some string") .Int("bar", 12345); var createResult = db .Document .CreateEdge(Database.TestEdgeCollectionName, _documents[0].ID(), _documents[1].ID(), document); var dummy = new Dummy(); dummy.Foo = "some other new string"; dummy.Baz = 54321; var replaceResult = db .Document .ReplaceEdge(createResult.Value.ID(), _documents[0].ID(), _documents[1].ID(), dummy); Assert.AreEqual(202, replaceResult.StatusCode); Assert.IsTrue(replaceResult.Success); Assert.IsTrue(replaceResult.HasValue); Assert.AreEqual(replaceResult.Value.ID(), createResult.Value.ID()); Assert.AreEqual(replaceResult.Value.Key(), createResult.Value.Key()); Assert.AreNotEqual(replaceResult.Value.Rev(), createResult.Value.Rev()); var getResult = db .Document .Get(replaceResult.Value.ID()); Assert.AreEqual(getResult.Value.ID(), replaceResult.Value.ID()); Assert.AreEqual(getResult.Value.Key(), replaceResult.Value.Key()); Assert.AreEqual(getResult.Value.Rev(), replaceResult.Value.Rev()); Assert.AreNotEqual(getResult.Value.String("foo"), document.String("foo")); Assert.AreEqual(getResult.Value.String("foo"), dummy.Foo); Assert.AreEqual(getResult.Value.Int("baz"), dummy.Baz); Assert.AreEqual(0, getResult.Value.Int("bar")); }
public void Should_create_edge_with_returnNew_parameter() { Database.ClearTestCollection(Database.TestEdgeCollectionName); var db = new ADatabase(Database.Alias); var document = new Dictionary<string, object>() .From(_documents[0].ID()) .To(_documents[1].ID()) .String("foo", "foo string value") .Int("bar", 12345); var createResult = db .Document .ReturnNew() .CreateEdge(Database.TestEdgeCollectionName, document); Assert.AreEqual(202, createResult.StatusCode); Assert.IsTrue(createResult.Success); Assert.IsTrue(createResult.HasValue); Assert.IsTrue(createResult.Value.IsString("_id")); Assert.IsTrue(createResult.Value.IsString("_key")); Assert.IsTrue(createResult.Value.IsString("_rev")); Assert.IsTrue(createResult.Value.Has("new")); Assert.AreEqual(createResult.Value.ID(), createResult.Value.String("new._id")); Assert.AreEqual(createResult.Value.Key(), createResult.Value.String("new._key")); Assert.AreEqual(createResult.Value.Rev(), createResult.Value.String("new._rev")); Assert.AreEqual(document.String("_from"), createResult.Value.String("new._from")); Assert.AreEqual(document.String("_to"), createResult.Value.String("new._to")); Assert.AreEqual(document.String("foo"), createResult.Value.String("new.foo")); Assert.AreEqual(document.Int("bar"), createResult.Value.Int("new.bar")); }
/// <summary> /// Creates new database with given name and user list. /// </summary> 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; }
/// <summary> /// Creates new collection in current database context. /// </summary> public AResult<Dictionary<string, object>> Create(string collectionName) { var request = new Request(HttpMethod.POST, ApiBaseUri.Collection, ""); var bodyDocument = new Dictionary<string, object>(); // required bodyDocument.String(ParameterName.Name, collectionName); // optional Request.TrySetBodyParameter(ParameterName.Type, _parameters, bodyDocument); // optional Request.TrySetBodyParameter(ParameterName.WaitForSync, _parameters, bodyDocument); // optional Request.TrySetBodyParameter(ParameterName.JournalSize, _parameters, bodyDocument); // optional Request.TrySetBodyParameter(ParameterName.DoCompact, _parameters, bodyDocument); // optional Request.TrySetBodyParameter(ParameterName.IsSystem, _parameters, bodyDocument); // optional Request.TrySetBodyParameter(ParameterName.IsVolatile, _parameters, bodyDocument); // optional Request.TrySetBodyParameter(ParameterName.KeyOptionsType, _parameters, bodyDocument); // optional Request.TrySetBodyParameter(ParameterName.KeyOptionsAllowUserKeys, _parameters, bodyDocument); // optional Request.TrySetBodyParameter(ParameterName.KeyOptionsIncrement, _parameters, bodyDocument); // optional Request.TrySetBodyParameter(ParameterName.KeyOptionsOffset, _parameters, bodyDocument); // optional Request.TrySetBodyParameter(ParameterName.NumberOfShards, _parameters, bodyDocument); // optional Request.TrySetBodyParameter(ParameterName.ShardKeys, _parameters, bodyDocument); request.Body = JSON.ToJSON(bodyDocument, ASettings.JsonParameters); var response = _connection.Send(request); var result = new AResult<Dictionary<string, object>>(response); switch (response.StatusCode) { case 200: var body = response.ParseBody<Dictionary<string, object>>(); result.Success = (body != null); result.Value = body; break; default: // Arango error break; } _parameters.Clear(); return result; }
/// <summary> /// Creates index within specified collection in current database context. /// </summary> public AResult<Dictionary<string, object>> Create(string collectionName) { var request = new Request(HttpMethod.POST, ApiBaseUri.Index, ""); var bodyDocument = new Dictionary<string, object>(); // required request.QueryString.Add(ParameterName.Collection, collectionName); // required bodyDocument.String(ParameterName.Type, _parameters.String(ParameterName.Type)); switch (_parameters.Enum<AIndexType>(ParameterName.Type)) { case AIndexType.Cap: Request.TrySetBodyParameter(ParameterName.ByteSize, _parameters, bodyDocument); Request.TrySetBodyParameter(ParameterName.Size, _parameters, bodyDocument); break; case AIndexType.Fulltext: Request.TrySetBodyParameter(ParameterName.Fields, _parameters, bodyDocument); Request.TrySetBodyParameter(ParameterName.MinLength, _parameters, bodyDocument); break; case AIndexType.Geo: Request.TrySetBodyParameter(ParameterName.Fields, _parameters, bodyDocument); Request.TrySetBodyParameter(ParameterName.GeoJson, _parameters, bodyDocument); break; case AIndexType.Hash: Request.TrySetBodyParameter(ParameterName.Fields, _parameters, bodyDocument); Request.TrySetBodyParameter(ParameterName.Sparse, _parameters, bodyDocument); Request.TrySetBodyParameter(ParameterName.Unique, _parameters, bodyDocument); break; case AIndexType.Skiplist: Request.TrySetBodyParameter(ParameterName.Fields, _parameters, bodyDocument); Request.TrySetBodyParameter(ParameterName.Sparse, _parameters, bodyDocument); Request.TrySetBodyParameter(ParameterName.Unique, _parameters, bodyDocument); break; default: break; } request.Body = JSON.ToJSON(bodyDocument, ASettings.JsonParameters); var response = _connection.Send(request); var result = new AResult<Dictionary<string, object>>(response); switch (response.StatusCode) { case 200: case 201: if (response.DataType == DataType.Document) { result.Value = (response.Data as Dictionary<string, object>); result.Success = (result.Value != null); } break; case 400: case 404: default: // Arango error break; } _parameters.Clear(); return result; }
public void Should_create_edge() { Database.ClearTestCollection(Database.TestEdgeCollectionName); var db = new ADatabase(Database.Alias); var document = new Dictionary<string, object>() .String("foo", "foo string value") .Int("bar", 12345); var createResult = db.Edge .Create(Database.TestEdgeCollectionName, _documents[0].String("_id"), _documents[1].String("_id"), document); Assert.AreEqual(202, createResult.StatusCode); Assert.IsTrue(createResult.Success); Assert.IsTrue(createResult.HasValue); Assert.IsTrue(createResult.Value.IsString("_id")); Assert.IsTrue(createResult.Value.IsString("_key")); Assert.IsTrue(createResult.Value.IsString("_rev")); var getResult = db.Edge .Get(createResult.Value.String("_id")); Assert.AreEqual(200, getResult.StatusCode); Assert.IsTrue(getResult.Success); Assert.IsTrue(getResult.HasValue); Assert.AreEqual(getResult.Value.String("_id"), createResult.Value.String("_id")); Assert.AreEqual(getResult.Value.String("_key"), createResult.Value.String("_key")); Assert.AreEqual(getResult.Value.String("_rev"), createResult.Value.String("_rev")); Assert.IsTrue(getResult.Value.IsString("_from")); Assert.IsTrue(getResult.Value.IsString("_to")); Assert.AreEqual(getResult.Value.String("foo"), document.String("foo")); Assert.AreEqual(getResult.Value.Int("bar"), document.Int("bar")); }
public void Should_replace_document_with_ifMatch_and_lastUpdatePolicy() { var documents = Database.ClearCollectionAndFetchTestDocumentData(Database.TestDocumentCollectionName); var db = new ADatabase(Database.Alias); var document = new Dictionary<string, object>() .String("foo", "some other new string") .Int("baz", 54321); var replaceResult = db.Document .IfMatch("123456789", AUpdatePolicy.Last) .Replace(documents[0].String("_id"), document); Assert.AreEqual(202, replaceResult.StatusCode); Assert.IsTrue(replaceResult.Success); Assert.IsTrue(replaceResult.HasValue); Assert.AreEqual(replaceResult.Value.String("_id"), documents[0].String("_id")); Assert.AreEqual(replaceResult.Value.String("_key"), documents[0].String("_key")); Assert.AreNotEqual(replaceResult.Value.String("_rev"), documents[0].String("_rev")); var getResult = db.Document .Get(replaceResult.Value.String("_id")); Assert.AreEqual(getResult.Value.String("_id"), replaceResult.Value.String("_id")); Assert.AreEqual(getResult.Value.String("_key"), replaceResult.Value.String("_key")); Assert.AreEqual(getResult.Value.String("_rev"), replaceResult.Value.String("_rev")); Assert.AreNotEqual(getResult.Value.String("foo"), documents[0].String("foo")); Assert.AreEqual(getResult.Value.String("foo"), document.String("foo")); Assert.AreEqual(getResult.Value.Int("baz"), document.Int("baz")); Assert.IsFalse(getResult.Value.Has("bar")); }