Esempio n. 1
0
        public override void ServerSide(List <Common.Connections.Connection> ServerConnections, Common.Connections.Connection ThisConnection)
        {
            Send(ThisConnection);
            System.Threading.Thread.Sleep(50);

            using (ConversationDataContext tmpDB = new ConversationDataContext())
            {
                List <MessageItem> Messages = ((ConversationItem)(from a in tmpDB.ConversationItems where a.ConversationGUID == this.ConversationID select a).Single()).MessageItems.OrderBy(a => a.MessageID).ToList();

                //LOOP THROUGH EACH MESSAGE IN THE DATABASE AND SEND IT BACK TO THE PERSON REQUESTING THE CONVERSATION
                foreach (MessageItem tmpMessage in Messages)
                {
                    //UNWRAP THE MESSAGE AND SEND IT BACK TO THE SAME CONNECTION WHICH ASKED FOR IT
                    Message_Private tmpPrivateMessage = (Message_Private)MessageWrapper.UnPackageFromTCP(tmpMessage.MessageData.ToArray(), true);

                    //USED TO STOP THE SOUND FROM PLAYING SINCE THIS MESSAGE IS AN ARCHIVED MESSAGE WE DO NOT NEED TO NOTIFY THE USER IT HAS ARIVED
                    tmpPrivateMessage.IsArchive = true;

                    //SEND THE TMP MESSAGE BACK
                    tmpPrivateMessage.Send(ThisConnection);

                    //SLEEP BRIEFLY TO SLOW MESSAGE ARIVAL ON THE CLIENT
                    System.Threading.Thread.Sleep(50);
                }

                //CHECK TO SEE IF WE NEED TO DELETE THE ITEM FROM A MISSED CONVERSATION LIST OR NOT
                tmpDB.MissedConversationItems.DeleteAllOnSubmit(from a in tmpDB.MissedConversationItems where a.ConversationItem.ConversationGUID == this.ConversationID select a);
                tmpDB.SubmitChanges();
            }
        }
Esempio n. 2
0
        public override void ServerSide(List <Connection> ServerConnections, Connection ThisConnection)
        {
            IContactsProvider ContactProvider = StaticFunctions.GetContactsProvider();

            using (ConversationDataContext tmpDB = new ConversationDataContext())
            {
                long[]             ConvIDS  = (from a in tmpDB.ConversationMembers where a.UserID == ThisConnection.UserID select a.ConversationID).ToArray();
                ConversationItem[] ConvList = (from a in tmpDB.ConversationItems where ConvIDS.Contains(a.ConversationID) select a).ToArray();

                //GET THE RECENT MESSAGES FROM THE DATABASE
                this.RecentList = (from a in ConvList where a.MessageItems.Count() > 0 && a.DateCreated > DateTime.Now.AddDays(this.DaysToSearch * -1) select new Conversation()
                {
                    Date = a.DateCreated, Preview = ((Message_Private)MessageWrapper.UnPackageFromTCP(a.MessageItems.First().MessageData.ToArray(), true)).Message, Recipients = string.Join("; ", a.ConversationMembers.Select(b => ContactProvider.UserNameFromID(b.UserID)).OrderBy(c => c).ToArray()), MessageCount = a.MessageItems.Count(), ConversationID = a.ConversationGUID
                }).OrderBy(a => a.Date).Reverse().ToArray();

                //SEND THE INFORMATION BACK TO THE USER
                Send(ThisConnection);
            }
        }