public long GetDuetConversationId(long memberId1, long memberId2) { Output.ShowLog("GetDuetConversationId() => " + memberId1 + " => " + memberId2); long?fetchedConversationId = DuetConversationRepository.Instance.GetDuetConversationId(memberId1, memberId2); if (fetchedConversationId != null) { return((long)fetchedConversationId); } else { Conversation newConversation = new DuetConversation(new Consumer(memberId1), new Consumer(memberId2)); long? newConversationId = DuetConversationRepository.Instance.Insert(newConversation); return(newConversationId ?? 0); } }
new public long?Insert(Conversation item) { long?insertedId = base.Insert(item); this.CloseConnection(); if (insertedId == null) { return(null); } DuetConversation duetItem = (DuetConversation)item; string sql = "INSERT INTO Duet_Conversations (Conversation_Id, Member_Id_1, Member_Id_2) values (" + insertedId + ",'" + duetItem.Member1.Id + "','" + duetItem.Member2.Id + "')"; int?success = this.ExecuteSqlQuery(sql); if (success != null && success > 0) { return(insertedId); } return(null); }
public static bool SyncUncachedConversations(List <Nuntias> nuntiasList) { Console.WriteLine("SyncUncachedConversations()"); HashSet <long> conversationIdSet = new HashSet <long>(); foreach (Nuntias nuntias in nuntiasList) { conversationIdSet.Add(nuntias.NativeConversationID); } List <long> unlistedConversationIdList = new List <long>(); foreach (long conversationId in conversationIdSet) { bool?exists = ConversationRepository.Instance.ExistsConversation(conversationId); if (exists == false) { unlistedConversationIdList.Add(conversationId); } } if (unlistedConversationIdList.Count == 0) { return(true); } List <JObject> conversationJsonList = null; ServerHub.WorkingInstance.ServerHubProxy.Invoke <List <JObject> >("GetConversations", unlistedConversationIdList).ContinueWith(task => { if (!task.IsFaulted) { conversationJsonList = task.Result; } }).Wait(); if (conversationJsonList == null) { return(false); } foreach (JObject conversationJson in conversationJsonList) { long id = (long)conversationJson["id"]; string type = (string)conversationJson["type"]; Conversation conversation = null; if (type == "duet") { Consumer member1 = ServerRequest.GetConsumer((long)conversationJson["member_id_1"]); Consumer member2 = ServerRequest.GetConsumer((long)conversationJson["member_id_2"]); if (member1 == null || member2 == null) { continue; } conversation = new DuetConversation(id, member1, member2); DuetConversationRepository.Instance.Insert(conversation); } else if (type == "group") { List <Consumer> memberList = new List <Consumer>(); int member_count = (int)conversationJson["member_counter"]; for (int i = 1; i <= member_count; i++) { memberList.Add(ServerRequest.GetConsumer((long)conversationJson["member_id_" + i])); } conversation = new GroupConversation(id, conversationJson["name"].ToString(), memberList); GroupConversationRepository.Instance.Insert(conversation); } } return(true); }