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)); }
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); }