Example #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);
                });
            }
        }
Example #2
0
        private async void OnAdd(object sender, EventArgs e)
        {
            Usuario usuario = FutricaUsuariosServiceEx.TodosUsuarios.Where(x => x.nick.ToLower() == ContatoEntry.Text.ToLower() && x.flgAtivo == true).FirstOrDefault();

            if (usuario == null)
            {
                await DisplayAlert("Erro", "Usuário Não encontrado", "Ok");

                return;
            }

            if (usuario.id == App.Usuario.id)
            {
                await DisplayAlert("Erro", "Não é possível adicionar você como contato", "Ok");

                return;
            }

            List <ConversasUsuario> conversasUsuarioLista = FutricaConversasUsuariosServiceEx.TodasConversasUsuarios.Where(x => x.UsuarioId == App.Usuario.id).ToList();

            List <int> idList = new List <int>();

            foreach (ConversasUsuario item in conversasUsuarioLista)
            {
                idList.Add(item.ConversaId);
            }

            ConversasUsuario conversasUsuario = FutricaConversasUsuariosServiceEx.TodasConversasUsuarios.Where(x => idList.Contains(x.ConversaId) && x.UsuarioId == usuario.id).FirstOrDefault();

            if (conversasUsuario != null)
            {
                await DisplayAlert("Erro", "Contato já adicionado", "Ok");

                return;
            }

            Conversa conversa = new Conversa
            {
                flgAtivo  = true,
                UsuarioId = App.Usuario.id,
                flgGrupo  = false,
                nome      = "Conversa com " + usuario.nick
            };

            string content = JsonConvert.SerializeObject(conversa);

            var result = await _client.PostAsync(Constantes.ApiBaseURL + "Conversas", new StringContent(content, Encoding.UTF8, "application/json"));

            if (result != null)
            {
                var jsonString = await result.Content.ReadAsStringAsync();

                var model = JsonConvert.DeserializeObject <Conversa>(jsonString);

                FutricaConversasServiceEx.addItem(0, model);

                ConversasUsuario conversasUsuario1 = new ConversasUsuario()
                {
                    ConversaId = model.id,
                    UsuarioId  = App.Usuario.id
                };

                content = JsonConvert.SerializeObject(conversasUsuario1);
                await _client.PostAsync(Constantes.ApiBaseURL + "ConversasUsuarios", new StringContent(content, Encoding.UTF8, "application/json"));

                FutricaConversasUsuariosServiceEx.addItem(conversasUsuario1);

                ConversasUsuario conversasUsuario2 = new ConversasUsuario()
                {
                    ConversaId = model.id,
                    UsuarioId  = usuario.id
                };

                content = JsonConvert.SerializeObject(conversasUsuario2);
                await _client.PostAsync(Constantes.ApiBaseURL + "ConversasUsuarios", new StringContent(content, Encoding.UTF8, "application/json"));

                FutricaConversasUsuariosServiceEx.addItem(conversasUsuario2);

                await DisplayAlert("Sucesso", "Contato registrado com sucesso!", "Ok");
            }
        }