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