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]); } } }
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; }