public void Should_support_string()
        {
            var id = BsonIdUrlEncoder.Decode("123");

            id.Type.Should().Be(BsonType.String);
            BsonIdUrlEncoder.Encode(id).Should().Be("123");
            BsonIdUrlEncoder.Decode("123e").Type.Should().Be(BsonType.String);
        }
        public void Should_support_long()
        {
            var id = BsonIdUrlEncoder.Decode("123L");

            id.Type.Should().Be(BsonType.Int64);
            id.AsInt64.Should().Be(123L);
            BsonIdUrlEncoder.Encode(id).Should().Be("123L");
            BsonIdUrlEncoder.Decode("123l").Should().Be(id);
        }
        public void Should_support_objectId()
        {
            var oid = ObjectId.NewObjectId();
            var id  = BsonIdUrlEncoder.Decode(oid + "o");

            id.Type.Should().Be(BsonType.ObjectId);
            id.AsObjectId.Should().Be(oid);
            BsonIdUrlEncoder.Encode(id).Should().Be(oid + "o");
            BsonIdUrlEncoder.Decode(oid + "O").Should().Be(id);
        }
        public void Should_support_guid()
        {
            var guid = new Guid("7E360B14-B0DF-47FF-A491-518A3E11C0A2");
            var id   = BsonIdUrlEncoder.Decode(guid + "g");

            id.Type.Should().Be(BsonType.Guid);
            id.AsGuid.Should().Be(guid);
            BsonIdUrlEncoder.Encode(id).Should().Be(guid.ToString("N") + "g");
            BsonIdUrlEncoder.Decode(guid.ToString("N") + "G").Should().Be(id);
        }
Exemple #5
0
        public IActionResult SinglePut(string collection, [FromBody] JObject body, string id = null)
        {
            var doc = JsonSerializer.Deserialize(body.ToString()).AsDocument;

            if (!string.IsNullOrEmpty(id))
            {
                doc["_id"] = BsonIdUrlEncoder.Decode(id);
            }
            repository.Upsert(collection, doc);
            return(CreatedAtAction("SingleGet", new { collection, id = BsonIdUrlEncoder.Encode(doc["_id"]) }, null));
        }
        public async Task <IActionResult> SinglePut(string collection, string id = null)
        {
            var doc = await DocumentFromRequest();

            if (!string.IsNullOrEmpty(id))
            {
                doc["_id"] = BsonIdUrlEncoder.Decode(id);
            }
            storageService.Upsert(collection, doc);
            return(CreatedAtAction("SingleGet", new { collection, id = BsonIdUrlEncoder.Encode(doc["_id"]) }, null));
        }