예제 #1
0
        private async void getConversas()
        {
            if (ConversasListView.ItemsSource == null)
            {
                FutricaConversasUsuariosServiceEx.removeAll();
                FutricaConversasServiceEx.removeAll();
                ConversasListView.ItemsSource = FutricaConversasServiceEx.TodasConversas;
            }

            _client.Timeout = TimeSpan.FromSeconds(Constantes.timeoutSeconds);

            string content = await _client.GetStringAsync(Constantes.ApiBaseURL + "ConversasUsuarios");

            List <ConversasUsuario> conversasUsuarios = JsonConvert.DeserializeObject <List <ConversasUsuario> >(content);
            List <int> ids = new List <int>();

            foreach (ConversasUsuario conversasUsuario in conversasUsuarios)
            {
                FutricaConversasUsuariosServiceEx.addItem(0, conversasUsuario);

                if (conversasUsuario.UsuarioId == App.Usuario.id)
                {
                    ids.Add(conversasUsuario.ConversaId);
                }
            }

            _client.Timeout = TimeSpan.FromSeconds(Constantes.timeoutSeconds);

            content = await _client.GetStringAsync(Constantes.ApiBaseURL + "Conversas");

            List <Conversa> conversas = JsonConvert.DeserializeObject <List <Conversa> >(content);

            foreach (Conversa conversa in conversas.Where(x => ids.Contains(x.id)))
            {
                FutricaConversasServiceEx.addItem(0, conversa);
            }

            if (ativarLoop)
            {
                Device.StartTimer(TimeSpan.FromSeconds(90), () =>
                {
                    getConversas();
                    return(true);
                });
            }
        }