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