public object Update(object entity) { bool result = false; var mlist = entity as List <MedicationData>; try { using (MedicationMongoContext ctx = new MedicationMongoContext(ContractDBName)) { var bulk = ctx.Medications.Collection.InitializeUnorderedBulkOperation(); foreach (MEMedication fooDoc in ctx.Medications) { var update = new UpdateDocument { { fooDoc.ToBsonDocument() } }; update.Set("fmid", ObjectId.Parse(GetMedFamilyId(mlist, fooDoc.Id.ToString()))); bulk.Find(Query.EQ("_id", fooDoc.Id)).Upsert().UpdateOne(update); } BulkWriteResult bwr = bulk.Execute(); result = true; } return(result as object); } catch (Exception) { throw; } }
public void RequestAddFriend(string ownerUsername, string friendUsername, string remark, string groupName, string message, RequestAddFriendUpdateFlags flags) { var db = GetDatabase(); var collection = db.GetCollection("friend_request"); var queryDoc = new QueryDocument(); queryDoc.Add("OwnerUsername", ownerUsername.ToLower()); queryDoc.Add("FriendUsername", friendUsername.ToLower()); var cur = collection.Find(queryDoc); cur.Limit = 1; UpdateDocument updateDoc = new UpdateDocument(); if (cur.Size() > 0) { foreach (var item in cur) { updateDoc.Add(item); } } else { updateDoc.Add("OwnerUsername", ownerUsername.ToLower()); updateDoc.Add("FriendUsername", friendUsername.ToLower()); } if (flags == RequestAddFriendUpdateFlags.UpdateAll || (flags & RequestAddFriendUpdateFlags.UpdateRemark) == RequestAddFriendUpdateFlags.UpdateRemark) { if (remark == null && updateDoc.Contains("Remark")) { updateDoc.Remove("Remark"); } else if (remark != null) { updateDoc.Set("Remark", remark); } } if (flags == RequestAddFriendUpdateFlags.UpdateAll || (flags & RequestAddFriendUpdateFlags.UpdateMessage) == RequestAddFriendUpdateFlags.UpdateMessage) { if (message == null && updateDoc.Contains("Message")) { updateDoc.Remove("Message"); } else if (message != null) { updateDoc.Set("Message", message); } } if (flags == RequestAddFriendUpdateFlags.UpdateAll || (flags & RequestAddFriendUpdateFlags.UpdateGroup) == RequestAddFriendUpdateFlags.UpdateGroup) { if (groupName == null && updateDoc.Contains("GroupName")) { updateDoc.Remove("GroupName"); } else if (groupName != null) { updateDoc.Set("GroupName", groupName); } } updateDoc.Set("Time", DateTime.Now); collection.Update(queryDoc, updateDoc, UpdateFlags.Upsert); }