Ejemplo n.º 1
0
        private async Task MessageReceiveAsync(object sender, MessageReceivedEventArgs e)
        {
            using (await _messageReceivedLock.LockAsync())
            {
                var gsm = GsmList.FirstOrDefault(c => c.Model == (GsmCommMain)sender);
                var obj = e.IndicationObject;
                var loc = (MemoryLocation)obj;
                if (gsm == null)
                {
                    return;
                }

                var messages =
                    await Task.Run(() => gsm.GetMessagesAsync(PhoneMessageStatus.ReceivedUnread, loc.Storage));

                foreach (var message in messages)
                {
                    if (MessageList.Contains(message))
                    {
                        return;
                    }
                    MessageList.Insert(0, message);
                    EnqueueMessage(message);
                }
            }
        }