//maneja la seleccion de un medidor del listado para crear una nueva lectura private async void listView_ItemSelected(object sender, SelectedItemChangedEventArgs e) { try { CtrlMedidor Manager = new CtrlMedidor(); //declarando una variable de la clase control medidor e intanciandola Object ObjFila = e.SelectedItem; //asignar el objeto seleccionado a la variable de tipo object var json = JsonConvert.SerializeObject(ObjFila); //declaramos una variable json, y serializo el objeto fila ClsMedidor ObjMedidor = JsonConvert.DeserializeObject <ClsMedidor>(json); //transformamos ese json con jsonConver a un cls medidor var consulta = await Manager.Consultar(ObjMedidor.Id); //en esta variable vamos a cargar lo que me trae del metodo consultar de la clase medidor por id ObjMedidor = consulta.First(); //aqui tenemos todos los datos cargados de mi clase medidor CtrlLectura ObjCtrlLectura = new CtrlLectura(); //declamos una varible de tipo ctrllectura e intanciamos para usar sus metdos var LecturaMes = await ObjCtrlLectura.GetLecturaMedidorAsync(DateTime.Today, ObjMedidor.Id); if (LecturaMes == null) { await((NavigationPage)this.Parent).PushAsync(new PagIngresoLectura(ObjMedidor, true)); //mostrar el formulario Ingresos de lecturas con los datos cargados para modificar o eliminar } else { var resp = await DisplayAlert("Mensaje", "Desea Modificar", "si", "no"); if (resp) { await((NavigationPage)this.Parent).PushAsync(new PagIngresoLectura(LecturaMes, "edit")); //mostrar la vista para modificar una lectura con los datos cargados } } } catch (Exception ex) { await DisplayAlert("Mensaje", ex.Message, "ok"); } }
//metodo que se ejecuta cuando se muestra la interfaz protected override async void OnAppearing() { base.OnAppearing(); //es unmetodo que esta definido en los conten page, es porque vamos a personalizar CtrlLectura ObjCtrlLectura = new CtrlLectura(); //declaramos la variable y la instanciamos de la clase CtrlLectura try { // cada vez que se muestre el menú se busca lecturas para sincronizar if (ObjCtrlLectura.Esta_Conectado()) { await SincronizarLecturasAsync(); //traer lecturas del servidor remoto ObjCtrlLectura.MiUsuario = ObjMiUsuario; //cargamos los datos del usuario para que autentique. var StrMensaje = await ObjCtrlLectura.Sincronizar(); //enviar lecturas al servidor remoto. TxtConectado.Text = "SI"; TxtSincronizacion.Text = StrMensaje; } else { TxtConectado.Text = "NO"; TxtSincronizacion.Text = ""; } } catch (Exception ex) { TxtSincronizacion.Text = ex.Message; } }
ClsUsuario ObjMiUsuario; //declaramos una variable de tipo ClsUsuario public PagLecturas() //constructor Paglecturas { InitializeComponent(); //inicializamos los componentes de la clase PagLecturas this.ObjMiUsuario = App.Current.Properties["ObjUsuario"] as ClsUsuario; // ButSincr.IsVisible = false; //Es para mostrar el botoncito de sincronizar listView.IsVisible = false; Manager = new CtrlLectura();//es una instancia de la clase control lectura para poder utilizar los metodos de esta clase }
protected async Task <bool> SincronizarLecturasAsync()//sincroniza lecturas { try { CtrlLectura ObjCtrlLectura = new CtrlLectura(); //instanciamo con un objeto de la clase control lecturas ObjCtrlLectura.MiUsuario = ObjMiUsuario; //cargamos los datos del usuario para que autentique. bool IsValid = await ObjCtrlLectura.SincronizarAsync(); return(IsValid); } catch { return(false); } }
//controlador del selector de medidores private async void PkrNumeroMedidor_SelectedIndexChanged(object sender, EventArgs e) { ClsMedidor ObjMedidor = PkrNumeroMedidor.SelectedItem as ClsMedidor; //asignar nueva instancia de clase medidor según el objeto seleccionado ObjMedidor.ObjPersona = ObjPersona; //asignar objeto persona a objeto medidor Obj.ObjMedidor = ObjMedidor; //asignar variable local con objeto seleccionado CtrlLectura ObjCtrlLectura = new CtrlLectura(); //instancia de clase lectura var ConsLectura = await ObjCtrlLectura.ConsultarAnterior(ObjMedidor.Id); //consulta de lectura anterior if (ConsLectura != null) //si la lectura anterior no es nulo { if (ConsLectura.Count() != 0) { ClsLectura ObjLecturaAnterior = ConsLectura.First(); //asignar lectura anterior a objeto lectura anterior Obj.Anterior = ObjLecturaAnterior.Actual; //asignar campo anterior en objeto lectura según lectura del objeto lectura anterior TxtAnterior.Text = Obj.Anterior.ToString(); //mostrar lectura anterior en caja de texto } else { Obj.Anterior = 0;//en caso que no haya lectura anterior parte de 0 TxtAnterior.Text = "0"; } } }
//manejador del botón guardar private async void ButGuardar_Clicked(object sender, EventArgs e) { try { if (!string.IsNullOrWhiteSpace(LblNombres.Text) && PkrNumeroMedidor.SelectedItem != null && !string.IsNullOrWhiteSpace(txtConsumo.Text) //validación de no nulos ) { if (txtCedula.Text.Length == 10 && Obj.Actual > 0)//validación cedula con 10 caracteres { if (txtCedula.TextColor == Color.Green && txtLecturaActual.TextColor == Color.Green ) //Validacíon formato correcto { CtrlLectura manager = new CtrlLectura(); //instancia de clase control var res = ""; if (opc) { var ObjLecturaInsert = await manager.InsertAsync(Obj);//llamada a método que inserta un nuevo registro if (ObjLecturaInsert != null) { Obj = ObjLecturaInsert.First(); //asignación de objeto local con datos recién ingresados txtId.Text = Obj.Id.ToString(); //mostrar id del registro creado res = "ok"; //respuesta positiva } else { res = null;//respuesta negativa si no se realizó correctamente } } else { res = await manager.UpdateAsync(Obj);//llamada al método actualizar } if (res != null) { await DisplayAlert("Mensaje", "Datos Guardados Correctamente", "ok"); } else { await DisplayAlert("Mensaje", "No se guardó la información, vuelva a intentar más tarde", "ok"); } } else { await DisplayAlert("Mensaje", "Los campos de color rojo tienen formato incorrecto", "ok"); } } else { await DisplayAlert("Mensaje", "Faltan Datos Necesarios", "ok"); } } else { await DisplayAlert("Mensaje", "Faltan Datos", "ok"); } } catch (Exception e1) { await DisplayAlert("Mensaje", e1.Message, "ok"); } }
protected override async void OnAppearing()//se ejecuta cuando se muestra esta interfaz { base.OnAppearing(); this.ObjUsuario = App.Current.Properties["ObjUsuario"] as ClsUsuario;//recuperar objeto guardado en propieades de la aplicación ObjLectura.User_id = ObjUsuario.Id; try { manager = new CtrlLectura(); //instancia de clase control lectura if (nuevo) //cuando se está creando una lectura nueva { this.ObjCtrlPersona = new CtrlPersona(); //instancia la variable en objeto de la clase control persona (abonado) var ListPersona = await ObjCtrlPersona.ConsultarId(this.ObjMedidor.Persona_id); if (ListPersona.Count() > 0) { this.ObjPersona = ListPersona.First(); LblNombres.Text = this.ObjPersona.Nombre + " " + this.ObjPersona.Apellido; txtCedula.Text = this.ObjPersona.Cedula; } var LecturaAnterior = await manager.ConsultarAnterior(this.ObjMedidor.Id); if (LecturaAnterior.Count == 1) { ClsLectura ObjLecAnterior = LecturaAnterior.First(); TxtAnterior.Text = ObjLecAnterior.Actual.ToString(); ObjLectura.Anterior = ObjLecAnterior.Actual; } } else { if (opc == "ver") { //cuando se está consultando una lectura ButGuardar.IsVisible = false; } this.ObjCtrlPersona = new CtrlPersona(); CtrlMedidor ObjCtrlMedidor = new CtrlMedidor(); var ListMedidor = await ObjCtrlMedidor.Consultar(this.ObjLectura.Medidor_id); if (ListMedidor.Count() == 1) { this.ObjMedidor = ListMedidor.First(); var ListPersona = await ObjCtrlPersona.ConsultarId(this.ObjMedidor.Persona_id); if (ListPersona.Count() == 1) { this.ObjPersona = ListPersona.First(); LblNombres.Text = this.ObjPersona.Nombre + " " + this.ObjPersona.Apellido; txtCedula.Text = this.ObjPersona.Cedula; txtConsumo.Text = this.ObjLectura.Consumo.ToString(); TxtObservacion.Text = this.ObjLectura.Observacion; TxtAnterior.Text = ObjLectura.Anterior.ToString(); lblCodigo.Text = ObjMedidor.Codigo.ToString(); lblNumero.Text = ObjMedidor.Numero.ToString(); if (ObjLectura.Image != null) { Imagen.Source = ObjLectura.Image; } } } } recuperarpolitica(); } catch (Exception ex) { await DisplayAlert("Mensaje", ex.Message, "ok"); } }