public async Task Load() { LocalUser = await sqlDB.Table <ChadderLocalUserInfo>().FirstOrDefaultAsync(); Contacts.AddItems(await sqlDB.GetItems <ChadderContact>()); var conversations = await sqlDB.GetItems <ChadderConversation>(); foreach (var c in conversations) { c.Contact = GetContact(c.ContactUserId); } Conversations.AddItems(conversations); foreach (var msg in await sqlDB.GetItems <ChadderMessage>()) { if (msg.MyMessage) { msg.Sender = LocalUser; } else { msg.Sender = GetContact(msg.UserId); } Conversations.FirstOrDefault(i => i.recordId == msg.ConversationId).Messages.Add(msg); if (msg.Status != ChadderMessage.MESSAGE_STATUS.SENT) { Source.AddPendingMessage(msg, false); } } foreach (var picture in await sqlDB.GetItems <ChadderSQLPicture>()) { await LoadPicture(picture, false); } LocalUser.Picture = GetPicture(LocalUser.PictureId); foreach (var contact in Contacts) { contact.Picture = GetPicture(contact.PictureId); } foreach (var c in Conversations) { foreach (var m in c.Messages) { if (m.PictureId != null) { m.Picture = GetPicture(m.PictureId); } } } foreach (var d in await sqlDB.GetItems <ChadderUserDevice>()) { LocalUser.Devices.Add(d); } }
public ChadderContact GetContact(string userId) { return(Contacts.FirstOrDefault(i => i.UserId == userId)); }