Ejemplo n.º 1
0
        public override void Run()
        {
            ReferenceData.Entity.Conversation cvst = (ReferenceData.Entity.Conversation)data.Data;
            if (cvst.avatar2 != null && cvst.avatar != null)
            {
                string   imagesFolder = Path.GetDirectoryName(Process.GetCurrentProcess().MainModule.FileName) + @"\Files\Images\";
                string[] info         = getFileInfo(cvst.avatar2);
                cvst.avatar2 = info[0] + DateTime.Now.ToUniversalTime().Subtract(new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)).TotalMilliseconds + "." + info[1];
                File.WriteAllBytes(imagesFolder + cvst.avatar2, cvst.avatar);
            }
            bool result = new ConversationDAO().InsertConversation(cvst);

            if (result)
            {
                foreach (var member in cvst.memberList)
                {
                    ReferenceData.Entity.Participant p = new ReferenceData.Entity.Participant();
                    p.conversationId = cvst.id;
                    p.userId         = member.id;
                    new ParticipantDAO().InsertParticipant(p);
                }
                foreach (var onl in worker.Server.OnlineList)
                {
                    foreach (var mb in cvst.memberList)
                    {
                        if (onl.Acc.id == mb.id && mb.id != cvst.creatorId)
                        {
                            cvst.state = true;
                            onl.Worker.send(new SocketData("INSERTCONVERSATION", cvst));
                            if (cvst.memberList.Count == 2)
                            {
                                this.worker.send(new SocketData("ONLINE", mb));
                            }
                        }
                    }
                }
            }
        }
Ejemplo n.º 2
0
        private void sendConversationList(ReferenceData.Entity.Account user)
        {
            List <ReferenceData.Entity.Conversation> list = new ConversationDAO(worker.Server.OnlineList).GetConversationListOfAccount(user.id);

            if (list != null)
            {
                SocketData response = new SocketData("CONVERSATIONLIST", list);
                worker.send(response);
                foreach (var onl in worker.Server.OnlineList)
                {
                    if (onl.Acc.id != user.id)
                    {
                        foreach (var c in list)
                        {
                            if (c.memberList.Count == 2)
                            {
                                onl.Worker.send(new SocketData("ONLINE", user));
                            }
                        }
                    }
                }
            }
        }