示例#1
0
        public static T FindOneAndReplace <T>(string token, string collectionName, FilterDefinition <T> filter, T entity, FindOneAndReplaceOptions <T> findOneAndReplaceOptions = null, Notification notification = null)
        {
            if (findOneAndReplaceOptions == null)
            {
                findOneAndReplaceOptions = new FindOneAndReplaceOptions <T>
                {
                    IsUpsert       = true,
                    ReturnDocument = ReturnDocument.After
                };
            }

            var request = new FindOneAndReplace
            {
                CollectionName           = collectionName,
                Filter                   = filter.ToJson(),
                FindOneAndReplaceOptions = findOneAndReplaceOptions.ToBson(),
                Document                 = entity.ToJson(),
                Notification             = notification,
                OutputMode               = JsonOutputMode.Strict,
                CultureCode              = CultureInfo.CurrentCulture.Name
            };

            var response = Send <FindOneAndReplaceResponse>("entities/" + collectionName + "/findOneAndReplace", request, "POST");

            if (response != null && response.Result.Any())
            {
                var documentAsEntity = BsonSerializer.Deserialize <T>(response.Result);
                return(documentAsEntity);
            }
            return(default(T));
        }
示例#2
0
        public static T FindOneAndReplace <T>(string collectionName, FilterDefinition <T> filter, T document, FindOneAndReplaceOptions <BsonDocument> findOneAndReplaceOptions = null, string schemaId = "", Notification notification = null)
        {
            var request = new FindOneAndReplace
            {
                CollectionName           = collectionName,
                OutputMode               = JsonOutputMode.Strict,
                Filter                   = filter.ToJson(),
                Notification             = notification,
                Document                 = document.ToBsonDocument().ToJson(),
                FindOneAndReplaceOptions = findOneAndReplaceOptions
            };

            var response = Send <FindOneAndReplaceResponse>("entities/" + collectionName + "/findOneAndReplace", request, "POST");

            if (response?.Result == null)
            {
                return(default(T));
            }
            var documentAsEntity = BsonSerializer.Deserialize <T>(response.Result);

            return(documentAsEntity);
        }