示例#1
0
        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 += "*";
                }
            }
        }
示例#2
0
        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;
        }