//manejador del boton listar private async void Button_ClickedAsync(object sender, EventArgs e)//boton para consultar lecturas, es un controlador { try { listView.IsVisible = true; CtrlMedidor ObjMedidor = new CtrlMedidor(); //declarando una variable de la clase control medidro e intanciandola CtrlPersona ObjPersona = new CtrlPersona(); //declarando una variable de la clase control persona e intanciandola var lecturas = await Manager.Get(); var medidores = await ObjMedidor.Consultar(ObjMiUsuario.Sector); var personas = await ObjPersona.Consultar(); var result = from lect in lecturas //hacemos una consulta con la variable lect, en la tabla que está cargada de la tabla lecturas join med in medidores on lect.Medidor_id equals med.Id //utilizo el join cuando estoy consultando en varias tablas, join per in personas on med.Persona_id equals per.Id select new { lect.Id, lect.Fecha, per.Nombre, per.Apellido, lect.Anterior, lect.Actual, lect.Latitud, lect.Longitud, lect.Consumo }; listView.ItemsSource = result; } catch (Exception ex) { await DisplayAlert("Error", ex.Message, "ok"); } }
//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"); } }
//maneja boton consultar medidores del sector asignadoal usuario private async void ButConsultaMedidores_ClickedAsync(object sender, EventArgs e) { CtrlMedidor Manager = new CtrlMedidor(); try { await SincronizarMedidoresAsync(); CtrlMedidor ObjMedidor = new CtrlMedidor(); CtrlPersona ObjPersona = new CtrlPersona(); var medidores = await ObjMedidor.Consultar(ObjMiUsuario.Sector); var personas = await ObjPersona.Consultar(); var result = from med in medidores join per in personas on med.Persona_id equals per.Id select new { med.Id, med.Codigo, per.Nombre, per.Apellido, med.Numero, med.Marca, med.Modelo, med.Sector }; listView.ItemsSource = result; listView.IsVisible = true; } catch (Exception ex) { await DisplayAlert("Mensaje", ex.Message, "ok"); } }
protected async Task <bool> SincronizarMedidoresAsync()//sincroniza medidores asignado al usuario de ese sector { try { CtrlMedidor ObjCtrlMedidor = new CtrlMedidor(); ObjCtrlMedidor.MiUsuario = ObjMiUsuario;//cargamos los datos del usuario para que autentique. bool IsValid = await ObjCtrlMedidor.SincronizarAsync(); return(IsValid); } catch { return(false); } }
//controlador del botón listar private async void BtnListar_Clicked(object sender, EventArgs e) { try { CtrlMedidor manager = new CtrlMedidor(); //instanciar controlador var res = await manager.Consultar(TxtNumero.Text); //llamada al metodo consultar pasando como parámetro el número ingresado en la caja de texto if (res != null) //si la respuesta es no nulo { lstMedidores.ItemsSource = res; //cargar en el lista los objetos consultados en la base de datos } } catch (Exception e1)//control de errores { await DisplayAlert("Mensaje", e1.Message, "ok"); } }
//controlador del boton consultar private async void ButConsultaPersona_Clicked(object sender, EventArgs e) { ObjCtrlPersona = new CtrlPersona(); //instancia de clase clspersona var ConsPersona = await ObjCtrlPersona.ConsultarCi(txtCedula.Text); //consulta persona por cédula ingresadda if (ConsPersona != null) //si se ha encontrado la persona { ObjPersona = ConsPersona.First(); //asignar objeto local con datos consultados LblNombres.Text = ObjPersona.Nombres + " " + ObjPersona.Apellidos; ObjCtrlMedidor = new CtrlMedidor(); var ConsMedidor = await ObjCtrlMedidor.ConsultarIdPersona(ObjPersona.Id); //consulta de medidores por id de persona if (ConsMedidor != null) //si existen datos { PkrNumeroMedidor.ItemsSource = ConsMedidor.ToList(); //cargar lista de objeto en selector } } }
//método para eliminar un registro private async void ButEliminar_Clicked(object sender, EventArgs e) { CtrlMedidor manager = new CtrlMedidor(); if (txtId.Text.Length != 0) //validar id no vacío { var res = await manager.DeleteAsync(ObjMedidor); //llamada a método eliminar if (res != null) { await DisplayAlert("Mensaje", "Datos Eliminados Correctamente", "ok"); } else { await DisplayAlert("Mensaje", "No se eliminó la información, vuelva a intentar más tarde", "ok"); } } }
private async void BuscarPorFecha_Clicked(object sender, EventArgs e) { try { int mes, año; mes = numeromes(Seleccionarmes.SelectedItem.ToString()); int.TryParse(Seleccionaraño.SelectedItem.ToString(), out año); if (mes != 0 && año != 0) { listView.IsVisible = true; CtrlMedidor ObjMedidor = new CtrlMedidor(); //declarando una variable de la clase control medidor e intanciandola CtrlPersona ObjPersona = new CtrlPersona(); //declarando una variable de la clase control persona e intanciandola var lecturas = await Manager.Get(); var medidores = await ObjMedidor.Consultar(ObjMiUsuario.Sector); var personas = await ObjPersona.Consultar(); var result = from lect in lecturas //hacemos una consulta con la variable lect, en la tabla que está cargada de la tabla lecturas join med in medidores on lect.Medidor_id equals med.Id //utilizo el join cuando estoy consultando en varias tablas, join per in personas on med.Persona_id equals per.Id where lect.Fecha.Month == mes && lect.Fecha.Year == año select new { lect.Id, lect.Fecha, per.Nombre, per.Apellido, lect.Anterior, lect.Actual, lect.Latitud, lect.Longitud, lect.Consumo, lect.Image }; listView.ItemsSource = result; } } catch (Exception ex) { await DisplayAlert("Error", ex.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"); } }
private async void ButGuardar_Clicked(object sender, EventArgs e) { try { if (!string.IsNullOrWhiteSpace(txtNumero.Text) && !string.IsNullOrWhiteSpace(txtCodigo.Text) && !string.IsNullOrWhiteSpace(txtidPersona.Text) //validación de no nulos ) { if (ObjMedidor.Numero.Length > 0 && ObjMedidor.Codigo.Length > 0 && ObjMedidor.ObjPersona.Id > 0)//validación de no vacío { if (txtNumero.TextColor == Color.Green && txtCodigo.TextColor == Color.Green && txtidPersona.TextColor == Color.Green//validación de formato correcto ) { CtrlMedidor manager = new CtrlMedidor();//instancia de clase control var res = ""; if (opc) { var varObjeto = await manager.InsertAsync(ObjMedidor);//llmada a método que inserta un nuevo registro if (varObjeto != null) { ObjMedidor = varObjeto.First(); //asignación de objeto local con datos recién ingresados txtId.Text = ObjMedidor.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(ObjMedidor);//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)//control de errores { await DisplayAlert("Mensaje", e1.Message, "ok"); } }