private void GuardarCaracteristicas() { Cargando.Mostrar(); LineaCaracteristica oReg; foreach (DataGridViewRow oFila in this.dgvCaracteristicas.Rows) { if (oFila.IsNewRow) { continue; } int iId = this.dgvCaracteristicas.ObtenerId(oFila); int iCambio = this.dgvCaracteristicas.ObtenerIdCambio(oFila); switch (iCambio) { case Cat.TiposDeAfectacion.Agregar: case Cat.TiposDeAfectacion.Modificar: if (iCambio == Cat.TiposDeAfectacion.Agregar) { oReg = new LineaCaracteristica(); } else { oReg = Datos.GetEntity <LineaCaracteristica>(c => c.LineaCaracteristicaID == iId); } // Se llenan los datos oReg.LineaID = this.Linea.LineaID; oReg.CaracteristicaID = Util.Entero(oFila.Cells["colCaracteristicaID"].Value); // Se valida que no exista ya if (iCambio == Cat.TiposDeAfectacion.Agregar) { if (Datos.Exists <LineaCaracteristica>(c => c.LineaID == this.Linea.LineaID && c.CaracteristicaID == oReg.CaracteristicaID)) { continue; } } // Se verifican los cambios a la característica en sí var oCaracteristica = Datos.GetEntity <Caracteristica>(c => c.CaracteristicaID == oReg.CaracteristicaID); if (oCaracteristica == null) { oCaracteristica = new Caracteristica() { Caracteristica1 = Util.Cadena((oFila.Cells["colCaracteristicaID"] as DataGridViewComboBoxCell).FormattedValue) } } ; // Se valida si cambiaron las opciones bool bOpcionEnUso = false; string sOpciones = Util.Cadena(oFila.Cells["colMultipleOpciones"].Value); if (oCaracteristica.MultipleOpciones != null && sOpciones != oCaracteristica.MultipleOpciones) { var oOpcionesAnt = oCaracteristica.MultipleOpciones.Split(','); var oOpciones = sOpciones.Split(','); var oDif = oOpcionesAnt.Except(oOpciones); foreach (var sOpcion in oDif) { if (Datos.Exists <ParteCaracteristica>(c => c.CaracteristicaID == oReg.CaracteristicaID && c.Valor == sOpcion)) { UtilLocal.MensajeError("Alguna de las características removidas está siendo usada. No se puede guardar."); bOpcionEnUso = true; break; } } } if (!bOpcionEnUso) { // oCaracteristica.MultipleOpciones = sOpciones; oCaracteristica.Multiple = (oCaracteristica.MultipleOpciones != ""); Datos.Guardar <Caracteristica>(oCaracteristica); // Se guarda oReg.CaracteristicaID = oCaracteristica.CaracteristicaID; Datos.Guardar <LineaCaracteristica>(oReg); } break; case Cat.TiposDeAfectacion.Borrar: oReg = Datos.GetEntity <LineaCaracteristica>(c => c.LineaCaracteristicaID == iId); Datos.Eliminar <LineaCaracteristica>(oReg); break; } } Cargando.Cerrar(); // this.CargarCaracteristicas(); }
private void GuardarCaracteristicas() { Cargando.Mostrar(); LineaCaracteristica oReg; foreach (DataGridViewRow oFila in this.dgvCaracteristicas.Rows) { if (oFila.IsNewRow) continue; int iId = this.dgvCaracteristicas.ObtenerId(oFila); int iCambio = this.dgvCaracteristicas.ObtenerIdCambio(oFila); switch (iCambio) { case Cat.TiposDeAfectacion.Agregar: case Cat.TiposDeAfectacion.Modificar: if (iCambio == Cat.TiposDeAfectacion.Agregar) oReg = new LineaCaracteristica(); else oReg = Datos.GetEntity<LineaCaracteristica>(c => c.LineaCaracteristicaID == iId); // Se llenan los datos oReg.LineaID = this.Linea.LineaID; oReg.CaracteristicaID = Util.Entero(oFila.Cells["colCaracteristicaID"].Value); // Se valida que no exista ya if (iCambio == Cat.TiposDeAfectacion.Agregar) { if (Datos.Exists<LineaCaracteristica>(c => c.LineaID == this.Linea.LineaID && c.CaracteristicaID == oReg.CaracteristicaID)) continue; } // Se verifican los cambios a la característica en sí var oCaracteristica = Datos.GetEntity<Caracteristica>(c => c.CaracteristicaID == oReg.CaracteristicaID); if (oCaracteristica == null) oCaracteristica = new Caracteristica() { Caracteristica1 = Util.Cadena((oFila.Cells["colCaracteristicaID"] as DataGridViewComboBoxCell).FormattedValue) }; // Se valida si cambiaron las opciones bool bOpcionEnUso = false; string sOpciones = Util.Cadena(oFila.Cells["colMultipleOpciones"].Value); if (oCaracteristica.MultipleOpciones != null && sOpciones != oCaracteristica.MultipleOpciones) { var oOpcionesAnt = oCaracteristica.MultipleOpciones.Split(','); var oOpciones = sOpciones.Split(','); var oDif = oOpcionesAnt.Except(oOpciones); foreach (var sOpcion in oDif) { if (Datos.Exists<ParteCaracteristica>(c => c.CaracteristicaID == oReg.CaracteristicaID && c.Valor == sOpcion)) { UtilLocal.MensajeError("Alguna de las características removidas está siendo usada. No se puede guardar."); bOpcionEnUso = true; break; } } } if (!bOpcionEnUso) { // oCaracteristica.MultipleOpciones = sOpciones; oCaracteristica.Multiple = (oCaracteristica.MultipleOpciones != ""); Datos.Guardar<Caracteristica>(oCaracteristica); // Se guarda oReg.CaracteristicaID = oCaracteristica.CaracteristicaID; Datos.Guardar<LineaCaracteristica>(oReg); } break; case Cat.TiposDeAfectacion.Borrar: oReg = Datos.GetEntity<LineaCaracteristica>(c => c.LineaCaracteristicaID == iId); Datos.Eliminar<LineaCaracteristica>(oReg); break; } } Cargando.Cerrar(); // this.CargarCaracteristicas(); }