示例#1
0
        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);
            }
        }
示例#2
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);
        }