public static JObject Marge(JObject obj1, JObject obj2, MergeArrayHandling mergeType) { obj1.Merge(obj2, new JsonMergeSettings { MergeArrayHandling = mergeType }); return(obj1); }
public long Update(string collection, IDBQueryBuilder query, JObject data, bool overrideData = false, MergeArrayHandling mergeType = MergeArrayHandling.Union) { throw new NotImplementedException(); }
public long Update(string collection, string bsonQuery, Newtonsoft.Json.Linq.JObject data, bool overrideData = false, MergeArrayHandling mergeType = MergeArrayHandling.Union) { data[CommonConst.CommonField.UPDATED_DATE_TIME] = CommonUtility.GetUnixTimestamp(DateTime.Now); data[CommonConst.CommonField.UPDATED_BY] = GetUserId(); var dataResut = Get(collection, bsonQuery, null, null); var dbcollection = _mongoDataBase.GetCollection <BsonDocument>(collection); if (overrideData) { if (dataResut.Count > 1) { throw new InvalidFilterException((int)ErrorCode.DB.MULTIPLE_ROW_RETURNED, string.Format("Update replace command cannot execute in multiple rows")); } if (dataResut.Count == 1) { (dataResut[0] as JObject).Merge(data, new JsonMergeSettings { MergeArrayHandling = mergeType }); if (data[CommonConst.CommonField.ID] != null) { dataResut[0][CommonConst.CommonField.ID] = data[CommonConst.CommonField.ID]; } MongoDB.Bson.BsonDocument document = MongoDB.Bson.Serialization.BsonSerializer.Deserialize <BsonDocument>(dataResut[0].ToString()); ReplaceOneResult result = dbcollection.ReplaceOne(GetFilter(bsonQuery), document, new UpdateOptions() { IsUpsert = true }); if (dataResut.Count != result.ModifiedCount) { throw new ClientValidationError((int)ErrorCode.DB.UPDATE_DATA_COUNT_NOT_MATCH, ErrorCode.DB.UPDATE_DATA_COUNT_NOT_MATCH.ToString(), null); } } else { WriteData(collection, data); } } else { foreach (var item in dataResut) { (item as JObject).Merge(data, new JsonMergeSettings { MergeArrayHandling = mergeType }); } foreach (var item in dataResut) { if (data[CommonConst.CommonField.ID] != null) { item[CommonConst.CommonField.ID] = data[CommonConst.CommonField.ID]; } MongoDB.Bson.BsonDocument document = MongoDB.Bson.Serialization.BsonSerializer.Deserialize <BsonDocument>(item.ToString()); string filter = "{" + CommonConst.CommonField.DISPLAY_ID + " : '" + item[CommonConst.CommonField.DISPLAY_ID].ToString() + "'}"; ReplaceOneResult result = dbcollection.ReplaceOne(GetFilter(filter), document, new UpdateOptions() { IsUpsert = false }); } } return(dataResut.Count); }
public static bool Write(this IDBService dbProxy, string collection, JObject data, string filter, bool overrideData = false, MergeArrayHandling mergeType = MergeArrayHandling.Union) { if (dbProxy.Update(collection, new RawQuery(filter), data, overrideData, mergeType) != 0) { return(true); } else { return(false); } }
public static bool Write(this IDBService dbProxy, string collection, JObject data, Dictionary <string, string> filters, bool overrideData = false, MergeArrayHandling mergeType = MergeArrayHandling.Union) { if (dbProxy.Update(collection, QueryBuilder(filters), data, overrideData, mergeType) != 0) { return(true); } else { return(false); } }
public long Update(string collection, FilterQuery filters, JObject data, bool overrideData = false, bool validateSchma = false, MergeArrayHandling mergeType = MergeArrayHandling.Union) { return(Update(collection, new MongoQueryBuilder(filters), data, overrideData, validateSchma, mergeType)); }