/// <summary> /// Método que abre una ventana con las posibles propiedades numéricas a seleccionar. /// </summary> private void editarPropiedades() { //Identificamos si ya consultamos por primera vez todas las propiedades. Si ya lo consultamos, no volvemos a consultar. if (allPropiedades == null || allPropiedades.Count == 0) { allPropiedades = DataManager.GetAllPropiedades(); } ObservableCollection <FO_Item> listadoPropiedades = new ObservableCollection <FO_Item>(); foreach (Propiedad propiedad in allPropiedades) { FO_Item item = new FO_Item(); item.Nombre = propiedad.Nombre; item.id = propiedad.idPropiedad; item.Descripcion = propiedad.DescripcionCorta; if (ListaPropiedades.Where(x => x.idPropiedad == propiedad.idPropiedad).ToList().Count > 0) { item.IsSelected = true; } else { item.IsSelected = false; } listadoPropiedades.Add(item); } FO_ItemViewModel vm = new FO_ItemViewModel(listadoPropiedades, "Lista de propiedades numéricas"); WSelectedOption ventana = new WSelectedOption(); ventana.DataContext = vm; ventana.ShowDialog(); if (ventana.DialogResult.HasValue && ventana.DialogResult.Value) { ListaPropiedades.Clear(); foreach (FO_Item item in vm.ListaAllOptions) { if (item.IsSelected) { ListaPropiedades.Add(DataManager.GetPropiedadById(item.id)); } } setTitulos(); } }
private async void guardarPerfilPropiedades() { if (PerfilSeleccionado.idPerfil > 0) { int r = DataManager.UpdatePerfil(idPerfil, TipoPerfilSeleccionado.IdTipoPerfil, Nombre, Descripcion, Imagen); ObservableCollection <Propiedad> ListaPropiedadesOriginales = DataManager.GetAllPropiedadesByPerfil(PerfilSeleccionado.idPerfil, false); ObservableCollection <PropiedadCadena> ListaPropiedadesCadenaOriginales = DataManager.GetAllPropiedadesCadenaByPerfil(PerfilSeleccionado.idPerfil); ObservableCollection <PropiedadBool> ListaPropiedadesBoolOriginales = DataManager.GetallPropiedadesBoolByPerfil(PerfilSeleccionado.idPerfil); //Iteramos la lista foreach (Propiedad item in ListaPropiedades) { if (ListaPropiedadesOriginales.Where(x => x.idPropiedad == item.idPropiedad).ToList().Count == 0) { //Insertamos a la base de datos. DataManager.InsertNewPropiedadPerfil(item.idPropiedad, PerfilSeleccionado.idPerfil); } } foreach (Propiedad item in ListaPropiedadesOriginales) { if (ListaPropiedades.Where(x => x.idPropiedad == item.idPropiedad).ToList().Count == 0) { //Eliminamos desde la base de datos. DataManager.DeletePropiedadPerfil(item.idPropiedad, PerfilSeleccionado.idPerfil); } } foreach (PropiedadCadena item in ListaPropiedadesCadena) { if (ListaPropiedadesCadenaOriginales.Where(x => x.idPropiedad == item.idPropiedad).ToList().Count == 0) { //Insertamos desde la base de datos. DataManager.InsertNewPropiedadCadenaPerfil(item.idPropiedad, PerfilSeleccionado.idPerfil); } } foreach (PropiedadCadena item in ListaPropiedadesCadenaOriginales) { if (ListaPropiedadesCadena.Where(x => x.idPropiedad == item.idPropiedad).ToList().Count == 0) { //Eliminamos desde la base de datos. DataManager.DeletePropiedadCadenaPerfil(item.idPropiedad, PerfilSeleccionado.idPerfil); } } foreach (PropiedadBool item in ListaPropiedadesBool) { if (ListaPropiedadesBoolOriginales.Where(x => x.idPropiedad == item.idPropiedad).ToList().Count == 0) { //Insertamos desde la base de datos. DataManager.InsertNewPropiedadBoolPerfil(item.idPropiedad, PerfilSeleccionado.idPerfil); } } foreach (PropiedadBool item in ListaPropiedadesBoolOriginales) { if (ListaPropiedadesBool.Where(x => x.idPropiedad == item.idPropiedad).ToList().Count == 0) { //Eliminamos desde la base de datos. DataManager.DeletePropiedadBoolPerfil(item.idPropiedad, PerfilSeleccionado.idPerfil); } } if (r > 0) { await dialogService.SendMessage(StringResources.ttlAlerta, StringResources.ttlDone); } else { await dialogService.SendMessage(StringResources.ttlAlerta, StringResources.msgError); } } else { //int r = DataManager(idPerfil, TipoPerfilSeleccionado.IdTipoPerfil, Nombre, Descripcion, Imagen); int _idPerfil = DataManager.InsertPerfil(TipoPerfilSeleccionado.IdTipoPerfil, Nombre, Descripcion, Imagen, 1); foreach (var item in ListaPropiedades) { DataManager.InsertNewPropiedadPerfil(item.idPropiedad, _idPerfil); } foreach (var item in ListaPropiedadesCadena) { DataManager.InsertNewPropiedadCadenaPerfil(item.idPropiedad, _idPerfil); } foreach (var item in ListaPropiedadesBool) { DataManager.InsertNewPropiedadBoolPerfil(item.idPropiedad, _idPerfil); } await dialogService.SendMessage(StringResources.ttlAlerta, StringResources.ttlDone); } }