protected override async void OnAppearing()
        {
            obtenerFechas();

            await obtenerSamplingAsync();

            await obtenerFaseAsync((int)Application.Current.Properties["id-fase"]);

            int preliminar = (int)Application.Current.Properties["preliminar-done"];

            //if para saber por cual fase se encuentra
            if (preliminar == 1)
            {
                //if para saber si ya se hizo la pregunta de si desea más muestras una vez llegada a la cantidad guardada
                if (currentFase.extraFlag == 0)
                {
                    bool answer = await DisplayAlert("Número de muestras alcanzada!", "Desea agregar más muestras a la fase preliminar?", "Sí", "No");

                    if (answer)
                    {
                        await PopupNavigation.Instance.PushAsync(new PopupMore(1));                                            //Se muestra popup de más muestras

                        Application.Current.Properties["preliminar-done"] = 0;                                                 //Se cambia de nuevo el valor para que no esté finalizado
                        muestrasRestantesLabel.Text = "Muestras restantes: " + Application.Current.Properties["muestras-mas"]; //Se actualiza etiqueta
                        //await ActualizarFlag(1);   //Método para actualizar que se hizo la pregunta
                    }
                    else
                    {
                        Application.Current.Properties["preliminar-done"] = 2; //Se cambia valor para indicar que se finaliza por completo la etapa
                        await cambiarFase();                                   //Método para cambiar de fase actual

                        var calcularPage = new Estadisticas(currentFase);
                        await Navigation.PushAsync(calcularPage);

                        this.Navigation.RemovePage(this.Navigation.NavigationStack[this.Navigation.NavigationStack.Count - 2]);
                    }
                }
                else
                {
                    Application.Current.Properties["preliminar-done"] = 2; //Se cambia valor para indicar que se finaliza por completo la etapa
                    await DisplayAlert("Número de muestras alcanzada!", "Se procederá a calcular la cantidad de muestras para la etapa definitiva!", "OK");
                    await cambiarFase();                                   //Método para cambiar de fase actual

                    var calcularPage = new Estadisticas(currentFase);
                    await Navigation.PushAsync(calcularPage);

                    this.Navigation.RemovePage(this.Navigation.NavigationStack[this.Navigation.NavigationStack.Count - 2]);
                }
            }
            else if (preliminar == 2)
            {
                var definitive = (int)Application.Current.Properties["definitive-done"];

                //if para saber si la etapa definitiva finalizó en la preliminar
                if (definitive == 1)
                {
                    //if para saber si ya se hizo la pregunta de si desea más muestras una vez llegada a la cantidad guardada
                    if (currentFase.extraFlag == 0)
                    {
                        bool answer = await DisplayAlert("Número de muestras alcanzada!", "Desea agregar más muestras a la fase definitiva?", "Sí", "No");

                        if (answer)
                        {
                            await PopupNavigation.Instance.PushAsync(new PopupMore(2));                                            //Se muestra popup de más muestras

                            Application.Current.Properties["definitive-done"] = 0;                                                 //Se cambia de nuevo el valor para que no esté finalizado
                            muestrasRestantesLabel.Text = "Muestras restantes: " + Application.Current.Properties["muestras-mas"]; //Se actualiza etiqueta
                            //await ActualizarFlag(1);    //Método para actualizar que se hizo la pregunta
                        }
                        else
                        {
                            Application.Current.Properties["definitive-done"] = 2; //Se cambia valor para indicar que se finaliza por completo la etapa
                            await terminarFaseDef();                               //Termina la fase definitiva

                            var estadisticas = new EstadisticasGenerales();
                            await Navigation.PushAsync(estadisticas);

                            this.Navigation.RemovePage(this.Navigation.NavigationStack[this.Navigation.NavigationStack.Count - 2]);
                        }
                    }
                    else
                    {
                        Application.Current.Properties["definitive-done"] = 2; //Se cambia valor para indicar que se finaliza por completo la etapa
                        await DisplayAlert("Número de muestras alcanzada!", "Se procederá a mostrar las estadísticas finales!", "OK");
                        await terminarFaseDef();                               //Termina la fase definitiva

                        var estadisticas = new EstadisticasGenerales();
                        await Navigation.PushAsync(estadisticas);

                        this.Navigation.RemovePage(this.Navigation.NavigationStack[this.Navigation.NavigationStack.Count - 2]);
                    }
                }
                else if (definitive == 3)
                {
                    //caso en el que N sea menor o igual a n
                    Application.Current.Properties["definitive-done"] = 2; //Se cambia valor para indicar que se finaliza por completo la etapa
                    await DisplayAlert("Número de muestras alcanzada!", "Se procederá a mostrar las estadísticas finales!", "OK");
                    await terminarFaseDef();                               //Termina la fase definitiva

                    var estadisticas = new EstadisticasGenerales();
                    await Navigation.PushAsync(estadisticas);

                    this.Navigation.RemovePage(this.Navigation.NavigationStack[this.Navigation.NavigationStack.Count - 2]);
                }
            }
        }
Example #2
0
        async void Handle_ItemTapped(object sender, ItemTappedEventArgs e)
        {
            if (e.Item == null)
            {
                return;
            }

            int faseActual   = (int)Application.Current.Properties["fase"];
            var faseSelected = (string)e.Item;

            if (faseActual == 1 && faseSelected.Equals("Preliminar"))
            {
                await obtenerFaseAsync(faseActual);

                var recorridosPage = new Recorridos(true);
                await Navigation.PushAsync(recorridosPage);
            }
            else if (faseSelected.Equals("Preliminar") && faseActual == 2)
            {
                var recorridosPage = new Recorridos(false);
                await Navigation.PushAsync(recorridosPage);
                await DisplayAlert("Alerta!", "Etapa Bloqueada, solo se permite ver resultados.", "OK");
            }
            else if (faseSelected.Equals("Preliminar") && faseActual == 3)
            {
                var recorridosPage = new Recorridos(false);
                await Navigation.PushAsync(recorridosPage);
                await DisplayAlert("Alerta!", "Etapa Bloqueada, solo se permite ver resultados.", "OK");
            }


            else if (faseActual == 2 && faseSelected.Equals("Definitivo"))
            {
                await obtenerFaseAsync(faseActual);

                var recorridosPage = new Recorridos(true);
                await Navigation.PushAsync(recorridosPage);
            }
            else if (faseSelected.Equals("Definitivo") && faseActual == 1)
            {
                await DisplayAlert("Error!", "Etapa Bloqueada, porque se encuentra en la etapa Preliminar.", "OK");
            }
            else if (faseSelected.Equals("Definitivo") && faseActual == 3)
            {
                var recorridosPage = new Recorridos(false);
                await Navigation.PushAsync(recorridosPage);
                await DisplayAlert("Alerta!", "Etapa Bloqueada, solo se permite ver resultados.", "OK");
            }


            else if (faseActual == 3 && e.Item.Equals("Estadísticas Finales"))
            {
                var estadisticasGenPage = new EstadisticasGenerales();
                await Navigation.PushAsync(estadisticasGenPage);
            }
            else if (faseSelected.Equals("Estadísticas Finales") && faseActual == 1)
            {
                await DisplayAlert("Error!", "Etapa Bloqueada, porque se encuentra en la etapa Preliminar.", "OK");
            }
            else if (faseSelected.Equals("Estadísticas Finales") && faseActual == 2)
            {
                await DisplayAlert("Error!", "Etapa Bloqueada, porque se encuentra en la etapa Definitiva.", "OK");
            }

            //Deselect Item
            ((ListView)sender).SelectedItem = null;
        }