Пример #1
0
        public MessageData(Messages.MessageInfo messageInfo)
        {
            if (messageInfo != null)
            {
                Id    = messageInfo.Id;
                Type  = messageInfo.Type;
                Title = messageInfo.Subject;
                Text  = messageInfo.Message;
                if (messageInfo.SentTimestamp.HasValue)
                {
                    AddedTime = messageInfo.SentTimestamp.Value;
                }
                if (messageInfo.ReadTimestamp.HasValue)
                {
                    Read = true;
                }

                Remote = true;
            }
        }
        private void AppDelegate_ReceivedMessages(object sender, IncomingMessageEventArgs e)
        {
            List <Messages.MessageInfo> messageItems = new List<Messages.MessageInfo> ();
            Guid me = AndroidData.CurrentUser.AccountID;

            RunOnUiThread (delegate {
                foreach (LOLMessageDelivery.Message eachMessage in e.Messages) {
                    MessageDB msgDB = MessageDB.ConvertFromMessage (eachMessage);
                    Messages.MessageInfo msgInfo = new Messages.MessageInfo (msgDB, msgDB.FromAccountID == me ? UserDB.ConvertFromUser (AndroidData.CurrentUser) :
                                                                             dbm.GetUserWithAccountID (msgDB.FromAccountGuid));

                    if (msgInfo != null) {
                        messageItems.Add (msgInfo);
                    }
                }

                if (messageItems.Count > 0) {
                    List<MessageDB> message = new List<MessageDB> ();
                    foreach (Messages.MessageInfo eachMessageInfo in messageItems) {
                        this.MessageItems [eachMessageInfo.Message.MessageID] = eachMessageInfo;
                        message.Add (eachMessageInfo.Message);
                    }
                    dbm.InsertOrUpdateMessages (message);
                    LoadContactsAndMessages (true);
                }
            });
        }
Пример #3
0
        private void GetMessages()
        {
            if (!killed)
            {
                if (Messages.MessageConversations.storedMessages.Count != 0)
                    Messages.MessageConversations.storedMessages.Clear();
                List<MessageDB> message = new List<MessageDB>();
                message = dbm.GetAllMessagesForOwner(AndroidData.CurrentUser.AccountID.ToString());
                foreach (MessageDB m in message)
                    Messages.MessageConversations.storedMessages.Add(m);
                if (Messages.MessageConversations.storedMessages.Count == 0)
                {
                    List<Guid> excludeMessageGuids = new List<Guid>();
                    /*excludeMessageGuids = this.MessageItems.Values.Where (s => s.Message.MessageStepDBList.Count (t => t.StepID == default(Guid)) == 0)
                    .Select (s => s.Message.MessageID).ToList ();*/
                    excludeMessageGuids = Messages.MessageConversations.storedMessages.Where(s => s.MessageStepDBList.Count(t => t.StepID == default(Guid)) == 0)
                        .Select(s => s.MessageID).ToList();
                    LOLMessageClient service = new LOLMessageClient(LOLConstants.DefaultHttpBinding, LOLConstants.LOLMessageEndpoint);
                    service.MessageGetNewCompleted += Service_MessageGetNewCompleted;
                    service.MessageGetNewAsync(AndroidData.CurrentUser.AccountID, AndroidData.NewDeviceID,
                                                     excludeMessageGuids,
                                                     new Guid(AndroidData.ServiceAuthToken));
                } else
                {
                    List<MessageDB> messages = new List<MessageDB>();
                    List<UserDB> users = new List<UserDB>();
                    foreach (MessageDB eachMessageDB in message)
                    {
                        if (eachMessageDB != null)
                        {
                            UserDB contactUser = null;
                            Messages.MessageInfo msgInfoItem = null;

                            if (eachMessageDB.FromAccountID != AndroidData.CurrentUser.AccountID)
                            {
                                foreach (ContactDB contact in Contacts.ContactsUtil.contacts)
                                {
                                    if (contact.ContactAccountID == eachMessageDB.FromAccountID)
                                    {
                                        contactUser = UserDB.ConvertFromUser(contact.ContactUser);
                                        break;
                                    } else
                                        contactUser = dbm.GetUserWithAccountID(eachMessageDB.FromAccountGuid);
                                }

                                msgInfoItem = new Messages.MessageInfo(eachMessageDB, contactUser);
                            } else
                            {
                                contactUser = UserDB.ConvertFromUser(AndroidData.CurrentUser);
                                msgInfoItem = new Messages.MessageInfo(eachMessageDB, contactUser);

                                if (!eachMessageDB.MessageConfirmed)
                                {
                                    ContentInfo contentInfo = dbm.GetContentInfoByMessageDBID(eachMessageDB.ID);
                                    msgInfoItem.ContentInfo = contentInfo;
                                }
                            }
                            messages.Add(eachMessageDB);
                            users.Add(contactUser);
                            this.MessageItems [eachMessageDB.MessageID] = msgInfoItem;
                        }
                    }
                }
            }
        }
Пример #4
0
        private void messagebox()
        {
            List<MessageDB> message = new List<MessageDB> ();
            message = dbm.GetAllMessagesForOwner (AndroidData.CurrentUser.AccountID.ToString ());
            //});
            int m = message.Count;
            #if DEBUG
            System.Diagnostics.Debug.WriteLine ("message stored : {0}", m);
            #endif
            if (m > 0) {
                Messages.MessageInfo msgInfoItem = null;
                UserDB contactUser = null;
                foreach (MessageDB eachMessageDB in message) {
                    if (eachMessageDB.FromAccountID != AndroidData.CurrentUser.AccountID) {
                        contactUser = dbm.GetUserWithAccountID (eachMessageDB.FromAccountGuid);
                        msgInfoItem = new Messages.MessageInfo (eachMessageDB, contactUser);
                    } else {
                        contactUser = UserDB.ConvertFromUser (AndroidData.CurrentUser);
                        msgInfoItem = new Messages.MessageInfo (eachMessageDB, contactUser);

                        if (!eachMessageDB.MessageConfirmed) {
                            ContentInfo contentInfo = dbm.GetContentInfoByMessageDBID (eachMessageDB.ID);
                            msgInfoItem.ContentInfo = contentInfo;
                        }
                    }

                    if (message.Count > 0) {
                        string messager = string.Empty;
                        if (msgInfoItem.Message.MessageStepDBList [0].MessageText.Length > 45)
                            messager = msgInfoItem.Message.MessageStepDBList [0].MessageText.Substring (0, 44);
                        else
                            messager = msgInfoItem.Message.MessageStepDBList [0].MessageText;
                        generateMessageBarAndAnimate (messager, message [message.Count - 1], contactUser);
                    }
                }
            }
            //});
        }
Пример #5
0
        private void AppDelegate_ReceivedMessages(object sender, IncomingMessageEventArgs e)
        {
            List <Messages.MessageInfo> messageItems = new List<Messages.MessageInfo>();
            Guid me = AndroidData.CurrentUser.AccountID;

            //RunOnUiThread (delegate {
            foreach (LOLMessageDelivery.Message eachMessage in e.Messages)
            {
                MessageDB msgDB = MessageDB.ConvertFromMessage(eachMessage);
                UserDB user = msgDB.FromAccountID == me ? UserDB.ConvertFromUser(AndroidData.CurrentUser) :
                        dbm.GetUserWithAccountID(msgDB.FromAccountGuid);

                if (user == null)
                {
                    unknownContacts.Add(msgDB.FromAccountID);
                    //Contacts.AddUnknownUser uku = new Contacts.AddUnknownUser (unknowns, context);
                }

                Messages.MessageInfo msgInfo = new Messages.MessageInfo(msgDB, user);

                if (msgInfo != null)
                {
                    messageItems.Add(msgInfo);
                }
            }

            if (messageItems.Count > 0)
            {
                if (message == null)
                    message = new List<MessageDB>();
                else
                    message.Clear();
                foreach (Messages.MessageInfo eachMessageInfo in messageItems)
                {
                    this.MessageItems [eachMessageInfo.Message.MessageID] = eachMessageInfo;
                    message.Add(eachMessageInfo.Message);
                }

                dbm.InsertOrUpdateMessages(message);
                messageItem = messageItems [0];
                markAsRead = message.Count;
                current = 0;
                LOLMessageClient service = new LOLMessageClient(LOLConstants.DefaultHttpBinding, LOLConstants.LOLMessageEndpoint);
                service.MessageMarkReadCompleted += Service_MessageMarkReadCompleted;
                service.MessageMarkReadAsync(message [current].MessageID, AndroidData.CurrentUser.AccountID, AndroidData.NewDeviceID, new Guid(AndroidData.ServiceAuthToken),
                                              message [current].MessageID);
            }
            //});
        }