Problem loading local db data to two pickers

1

Hello. I have two pickers that loads data from one api. A picker brings category data and the other subcategory. When I select a category the picker subcategory is loaded with the data of the corresponding subcategory. Save selected data to a local bd. So good.

The problem occurs when I load the data from the local bd to the pickers to do the registry editing. The category picker brings the dice with no problem, but the sub category picker sometimes brings the dice and sometimes not.

private async void VerificaClassificadoBaseLocal()
    {
        if (DataBase.GetClassificado() != null)
        {
            ActIndicator.IsVisible = true;
            ActIndicator.IsRunning = true;

            try
            {
                var dadosSituacao = await SituacaoClassificadoService.VerificaSituacaoClassificado(DataBase.GetAppKey());

                LblSituacao.Text = dadosSituacao.situacao;
                LblObservacao.Text = dadosSituacao.obs;

                var dadosClassificadoLocal = DataBase.GetClassificado();

                List<Categoria> ListaCategorias = await CategoriaService.GetCategoria(DataBase.GetAppKey());
                var _categoria = ListaCategorias.FindIndex(c => c.categoria == dadosClassificadoLocal.categ);
                PckCategoria.SelectedIndex = _categoria;

                var objCategoria = (Categoria)PckCategoria.SelectedItem;
                List<SubCategoria> ListaSubCategorias = await SubCategoriaService.GetSubCategoria(DataBase.GetAppKey(), objCategoria.idcategoria);
                var _subCategoria = ListaSubCategorias.FindIndex(s => s.subcategoria == dadosClassificadoLocal.subcateg);
                PckSubCategoria.SelectedIndex = _subCategoria;

                List<Hora> ListaHoras = Horarios.GetHoras();
                var Hora1Inicial = ListaHoras.FindIndex(h => h.Horas == dadosClassificadoLocal.contato_h1.Substring(0, 5));
                PckHora1Inicial.SelectedIndex = Hora1Inicial;

                var Hora1Final = ListaHoras.FindIndex(h => h.Horas == dadosClassificadoLocal.contato_h1.Substring(5, 5));
                PckHora1Final.SelectedIndex = Hora1Final;

                var Hora2Inicial = ListaHoras.FindIndex(h => h.Horas == dadosClassificadoLocal.contato_h2.Substring(0, 5));
                PckHora2Inicial.SelectedIndex = Hora2Inicial;

                var Hora2Final = ListaHoras.FindIndex(h => h.Horas == dadosClassificadoLocal.contato_h2.Substring(5, 5));
                PckHora2Final.SelectedIndex = Hora2Final;

                TxtTitulo.Text = dadosClassificadoLocal.titulo;
                TxtTexto.Text = dadosClassificadoLocal.texto;
                TxtTelefone.Text = dadosClassificadoLocal.contato_tel;
                TxtEmail.Text = dadosClassificadoLocal.contato_email;

            }
            catch (Exception erro)
            {
                await DisplayAlert("Erro", "Erro => " + erro, "Ok");
            }

            ActIndicator.IsVisible = false;
            ActIndicator.IsRunning = false;
        }
    }
    
asked by anonymous 02.07.2018 / 01:35

0 answers