Пример #1
0
 public void AddMails(Mails_Model data)
 {
     if (_connection != null)
     {
         _connection.Insert(data);
     }
 }
        public async Task Listner()
        {
            string LogguedIn = null;

            if (CrossSecureStorage.Current.HasKey("LogguedIn"))
            {
                LogguedIn = CrossSecureStorage.Current.GetValue("LogguedIn");
            }
            if (LogguedIn == "True")
            {
                var RecivedResult = await RESTService.Get_mails_Received_Async();

                if (RecivedResult.Item1)
                {
                    var MessagesList = DataStore.GetMails().Where(i => i.Type == "Received").ToList();
                    if (MessagesList.Count > 0)
                    {
                        var OldMessages = JsonConvert.DeserializeObject <List <Mail_Model> >(MessagesList[0].Json);
                        var NewMessages = JsonConvert.DeserializeObject <List <Mails_Model> >(RecivedResult.Item2);

                        if (NewMessages.Count > 0 && NewMessages.Count > OldMessages.Count)
                        {
                            DataStore.UpdateMails(MessagesList[0].Id, RecivedResult.Item2);
                            MessagingCenter.Send(this, "MessageReceived");
                            CrossLocalNotifications.Current.Show("Message Reçu", "Vous Avez Reçu " + (NewMessages.Count - OldMessages.Count).ToString() + "Message(s)");
                        }
                    }
                    else
                    {
                        var data = new Mails_Model
                        {
                            Date = DateTime.Now,
                            Json = RecivedResult.Item2,
                            Read = false,
                            Type = "Received"
                        };
                        DataStore.AddMails(data);
                        MessagingCenter.Send(this, "MessageReceived");
                    }
                }
            }
        }