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