void code_TextChanged(object sender, EventArgs e) { //para guardar en modificados temporalmente if (modoDiferencias) { return; } HLCode codigo = (HLCode)sender; string guidCodigo = codigo.guidCodigo; string guidObjeto = codigo.guidObjeto; string guidRegistro = codigo.guidRegistro; bool encontrado = false; Codigo cod = getCodigo(guidRegistro, guidObjeto, guidCodigo); foreach (CodigoModificado item in codigosModificados) { if (item.guidCodigo == guidCodigo && item.guidRegistro == guidRegistro && item.guidObjeto == guidObjeto) { encontrado = true; item.codigo = codigo.Text; break; } } if (!encontrado) { Diff dif = new Diff(); Diff.Item[] diferencias = dif.DiffText(codigo.Text, cod.codigo); if (diferencias.Length > 0) { CodigoModificado mod = new CodigoModificado(); mod.codigo = codigo.Text; mod.guidCodigo = codigo.guidCodigo; mod.guidObjeto = codigo.guidObjeto; mod.guidRegistro = codigo.guidRegistro; mod.nombreObjeto = codigo.nombreObjeto; codigosModificados.Add(mod); TabPageCustom tab = getTab(guidRegistro, guidObjeto, guidCodigo); tab.Text += "*"; } } }
private void btnGuardar_Click(object sender, EventArgs e) { if (modoDiferencias) { MessageBox.Show("No se puede guardar cuando se estan comparando diferencias entre versiones"); return; } TabPageCustom tab = (TabPageCustom)tabs.SelectedTab; string guidRegistro = tab.guidRegistro; string guidObjeto = tab.guidObjeto; string guidCodigo = tab.guidCodigo; Codigo codigo = getCodigo(guidRegistro, guidObjeto, guidCodigo); Objeto objeto = getObjeto(guidRegistro, guidObjeto); Registro reg = getRegistro(guidRegistro); bool encontrado = false; CodigoModificado codigoNuevo = new CodigoModificado(); foreach (CodigoModificado item in codigosModificados) { if (item.guidCodigo == guidCodigo && item.guidObjeto == guidObjeto && item.guidRegistro == guidRegistro) { codigoNuevo = item; encontrado = true; break; } } if (!encontrado) return; //actualizamos la fecha de modificacion en el anterior List<parametroQuery> parametros = new List<parametroQuery>(); parametros.Add(new parametroQuery { nombre = "fecha_modificacion", boolFecha = true, fecha = DateTime.Now }); List<parametroQuery> condiciones = new List<parametroQuery>(); condiciones.Add(new parametroQuery { nombre = "guid", valor = guidCodigo }); condiciones.Add(new parametroQuery { nombre = "version", valor = codigo.version }); conexion.ejecutarQueryUpdate("codigos", parametros, condiciones); codigo.fecha_modificacion = DateTime.Now; parametros = new List<parametroQuery>(); parametros.Add(new parametroQuery { nombre = "guid", valor = Guid.NewGuid().ToString() }); parametros.Add(new parametroQuery { nombre = "guid_objeto", valor = objeto.guid }); parametros.Add(new parametroQuery { nombre = "codigo", valor = codigoNuevo.codigo }); parametros.Add(new parametroQuery { nombre = "version", valor = codigo.version + 1 }); parametros.Add(new parametroQuery { nombre = "fecha_creacion", boolFecha = true, fecha = DateTime.Now }); parametros.Add(new parametroQuery { nombre = "fecha_modificacion", boolFecha = true, fecha = DateTime.Now }); conexion.ejecutarQueryInsert("codigos", parametros); codigosModificados.Remove(codigoNuevo); Codigo nuevoCodigoAAnadir = convertirParametrosACodigo(parametros); objeto.codigos.Insert(0, nuevoCodigoAAnadir); actualizarListas(reg, objeto); tab.Text = tab.nombreObjeto; }