public AnMeliponarioCajaViewModel() { Cajas = new ObservableCollection <Caja>(); Historicos = new ObservableCollection <Historico>(); LoadMeliponarios(); //carga el listado de cajas LoadCajas(); //carga el listado de cajas IsEnabled = true; instance = this; AccionesCaja = ANAccionMeliponarioViewModel.GetInstance().Acciones; //obtengo los datos de mi lista en la otra ComposicionHogarViewModel HeighListViewB = ANAccionMeliponarioViewModel.GetInstance().HeighListView; //obtengo el heigh de ComposicionHogarViewModel }
async void Guardar() { isEnabled = false; if (string.IsNullOrEmpty(FechaEntrega.ToString())) { await Application.Current.MainPage.DisplayAlert("error", "Debe Llenar El Campo Fecha", "Excelente"); IsEnabled = true; return; } var fecha = FechaEntrega.ToString(); #region Limpiar Cache //borrar los datos existentes en persistencia if (Application.Current.Properties.ContainsKey("ContadorAcciones")) { Elementos = int.Parse((Application.Current.Properties["ContadorAcciones"]) as string); } else { Elementos = 0; } for (int j = 0; j < Elementos; j++) //Elementos va a representar el total de elementos o filas existentes en mi persistencia { if (Application.Current.Properties.ContainsKey("TipoAccion" + j)) { Application.Current.Properties.Remove("TipoAccion" + j); } if (Application.Current.Properties.ContainsKey("FechaAccion" + j)) { Application.Current.Properties.Remove("FechaAccion" + j); } if (Application.Current.Properties.ContainsKey("Responsable")) { Application.Current.Properties.Remove("Responsable"); } if (Application.Current.Properties.ContainsKey("Comentario")) { Application.Current.Properties.Remove("Comentario"); } } #endregion #region Ciclo para Guardar en Persistencia mi lista Actual i = 0; //inicio el contador de mis elementos o filas en (0) foreach (var action in AccionesCaja) { Application.Current.Properties["TipoAccion" + i] = action.TipoAccion.ToString(); Application.Current.Properties["FechaAccion" + i] = action.FechaAccion.ToString(); Application.Current.Properties["Responsable" + i] = action.Responsable.ToString(); Application.Current.Properties["Comentario" + i] = action.Comentario.ToString(); i++; Application.Current.Properties["ContadorAcciones"] = i.ToString(); await Application.Current.SavePropertiesAsync(); } #endregion int filas; filas = AccionesCaja.Count; Application.Current.Properties["ContadorAcciones"] = filas.ToString(); //hay que examinar esta linea, es de prueba porque creo que no se actualiza bien el contador en la otra viewmodel cuando se borran todos los registros y esta linea evita eso HeighListViewB = 44 * filas; //actalizo mi heigh ANAccionMeliponarioViewModel.GetInstance().Acciones = this.AccionesCaja; //asigno los datos de mi lista await Application.Current.MainPage.DisplayAlert("Notificación", "Usted Tiene hasta Ahora: " + filas + " Acciones en Persistencia", "Excelente"); await Application.Current.MainPage.DisplayAlert( "Hola", IdCaja + " " + Tipo + " " + Productor + " " + fecha + " " + Comentario + " " + Origen + " " + FloraNueva, "Aceptar"); #region Miranda: Guardar Tabla Cajas #region Ciclo para Guardar en Persistencia if (Application.Current.Properties.ContainsKey("Contadorcajas"))//verifico cuantos elementos tiene mi lista para saber cual es la psocion del nuevo elemento a agregar { ElementosCaja = (int.Parse((Application.Current.Properties["Contadorcajas"]) as string)); } else { ElementosCaja = 0; } if (FloraNueva) { activacaja = "No"; } else { activacaja = "Si"; } string fechaEntrega = FechaEntrega.ToString(); if (string.IsNullOrEmpty(Tipo)) { Tipo = ""; } if (string.IsNullOrEmpty(Comentario))//si no hago esto, se le pasan valores nulos a persistencia { Comentario = ""; } Application.Current.Properties["Idcaja" + ElementosCaja] = IdCaja.ToString(); Application.Current.Properties["Tipocaja" + ElementosCaja] = Tipo.ToString(); Application.Current.Properties["Fechaentregacaja" + ElementosCaja] = (FechaEntrega).ToString(); //revisar, cuando no se selecciona fecha esta linea manda error OJOO Application.Current.Properties["Activacaja" + ElementosCaja] = activacaja.ToString(); Application.Current.Properties["Comentariocaja" + ElementosCaja] = Comentario.ToString(); Application.Current.Properties["Contadorcajas"] = (ElementosCaja + 1).ToString(); await Application.Current.SavePropertiesAsync(); #endregion int filascaja; filascaja = ElementosCaja + 1; HeighListViewCaja = 44 * filascaja;//actalizo mi heigh await Application.Current.MainPage.DisplayAlert("Notificación", "Usted Tiene hasta Ahora: " + filascaja + " Cajas Registradas", "Excelente"); Cajas.Add(new Caja() { Activa = activacaja.ToString(), Comentario = Comentario.ToString(), FechaEntrega = FechaEntrega, IdCaja = IdCaja, //int TipoCaja = Tipo.ToString(), }); ANMeliponarioViewModel.GetInstance().CajasAN = this.Cajas; //asigno los datos de mi lista ANMeliponarioViewModel.GetInstance().HeighListViewAN = this.HeighListViewCaja; //actualizo el heigh de mi vista anterior IsEnabled = true; await Application.Current.MainPage.Navigation.PopAsync(); #endregion }