public static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.ThreadException += Application_ThreadException; var ListaTablas = new List <DVHEN>(); var ListaErrorInt = new List <ErrorIntegridadEN>(); var DtErrorInt = new DataTable(); DtErrorInt.Columns.Add("Tabla", typeof(string)); DtErrorInt.Columns.Add("CodReg", typeof(int)); DtErrorInt.Columns.Add("CodAux", typeof(int)); DtErrorInt.Columns.Add("ValorDVH", typeof(int)); var DtErrorIntDVV = new DataTable(); DtErrorIntDVV.Columns.Add("Tabla", typeof(string)); var TablaBit = new DVHEN("Bitacora", "CodBit"); ListaTablas.Add(TablaBit); var TablaCli = new DVHEN("Cliente", "CodCli"); ListaTablas.Add(TablaCli); var TablaFamPat = new DVHEN("Fam_Pat", "Familia_CodFam"); ListaTablas.Add(TablaFamPat); var TablaHP = new DVHEN("Historico_Precio", "CodHist"); ListaTablas.Add(TablaHP); var TablaProd = new DVHEN("Producto", "CodProd"); ListaTablas.Add(TablaProd); var TablaUsuFam = new DVHEN("Usu_Fam", "Usuario_CodUsu"); ListaTablas.Add(TablaUsuFam); var TablaUsuPat = new DVHEN("Usu_Pat", "Usuario_CodUsu"); ListaTablas.Add(TablaUsuPat); var TablaUsuario = new DVHEN("Usuario", "CodUsu"); ListaTablas.Add(TablaUsuario); var DatosTabla = new DVHEN(); DatosTabla.DtIntegridad = DtErrorInt; DatosTabla.DtIntegridadDVV = DtErrorIntDVV; foreach (DVHEN item in ListaTablas) { DatosTabla.Tabla = item.Tabla; DatosTabla.Columna = item.Columna; try { var ErrorInt = new ErrorIntegridadEN(); ErrorInt = Integridad.VerificarIntegridad(DatosTabla); if (!string.IsNullOrEmpty(ErrorInt.Tabla)) { ListaErrorInt.Add(ErrorInt); } } catch (CriticalException ex) { MessageBox.Show(ex.Message, MercaderSG.My.Resources.ArchivoIdioma.MsgBoxCritico, MessageBoxButtons.OK, MessageBoxIcon.Error); } } if (ListaErrorInt.Count > 0) { MessageBox.Show(MercaderSG.My.Resources.ArchivoIdioma.ErrorIntegridad, MercaderSG.My.Resources.ArchivoIdioma.MsgBoxCritico, MessageBoxButtons.OK, MessageBoxIcon.Error); } var frm = new MercaderSG.LogIn(); frm.ListaErrorInt = ListaErrorInt; frm.DtErrorIntegridad = DatosTabla.DtIntegridad; frm.DtErrorIntegridadDVV = DatosTabla.DtIntegridadDVV; frm.ShowDialog(); Application.Run(); }
public static ErrorIntegridadEN VerificarIntegridad(DVHEN DatosDVHParam) { try { var ListaCod = new List<DVHEN>(); var ErrorInt = new ErrorIntegridadEN(); var DVHGral = new DVHEN(); DVHGral.Tabla = DatosDVHParam.Tabla; ListaCod = ServicioAD.ObtenerRegistros(DatosDVHParam); foreach (DVHEN item in ListaCod) { var DVHDatos = new DVHEN(); DVHDatos.Tabla = DatosDVHParam.Tabla; DVHDatos.CodReg = item.CodReg; DVHDatos.Columna = DatosDVHParam.Columna; if (DatosDVHParam.Tabla == "Fam_Pat" | DatosDVHParam.Tabla == "Usu_Pat" | DatosDVHParam.Tabla == "Usu_Fam") { DVHDatos.CodAux = item.CodAux; } int DVHComparar = CalcularDVH(DVHDatos); int DVHActual = ServicioAD.ObtenerDVHRegistro(DVHDatos); if (DVHActual != DVHComparar) { if (!((ErrorInt.Tabla ?? "") == (DVHDatos.Tabla ?? ""))) { ErrorInt.CodEn = DVHDatos.CodReg; ErrorInt.Tabla = DVHDatos.Tabla; ErrorInt.Tipo = "DVH"; ErrorInt.EstadoMensaje = true; } // DataTable DatosDVHParam.DtIntegridad.Rows.Add(DatosDVHParam.Tabla, DVHDatos.CodReg, DVHDatos.CodAux, DVHComparar); DatosDVHParam.DtIntegridadDVV.Rows.Add(DatosDVHParam.Tabla); string CadenaFamPat = ""; string CadenaUsuFam = ""; string CadenaUsuPat = ""; string CadenaEntidad = ""; switch (DatosDVHParam.Tabla ?? "") { case "Fam_Pat": { CadenaFamPat = ServiciosC.Seguridad.Encriptar("Error de integridad DVH. Tabla: Fam_Pat || CodFam: " + DVHDatos.CodReg + " - CodPat: " + DVHDatos.CodAux); if (ServicioAD.ExisteRegistroIntegridad(CadenaFamPat)) { continue; } break; } case "Usu_Fam": { CadenaUsuFam = ServiciosC.Seguridad.Encriptar("Error de integridad DVH. Tabla: Usu_Fam || CodUsu: " + DVHDatos.CodReg + " - CodFam: " + DVHDatos.CodAux); if (ServicioAD.ExisteRegistroIntegridad(CadenaUsuFam)) { continue; } break; } case "Usu_Pat": { CadenaUsuPat = ServiciosC.Seguridad.Encriptar("Error de integridad DVH. Tabla: Usu_Pat || CodUsu: " + DVHDatos.CodReg + " - CodPat: " + DVHDatos.CodAux); if (ServicioAD.ExisteRegistroIntegridad(CadenaUsuPat)) { continue; } break; } default: { CadenaEntidad = ServiciosC.Seguridad.Encriptar("Error de integridad DVH. Tabla: " + DVHDatos.Tabla + " en el registro nro: " + DVHDatos.CodReg + " de la columna " + DVHDatos.Columna); if (ServicioAD.ExisteRegistroIntegridad(CadenaEntidad)) { continue; } break; } } var Bitacora = new BitacoraEN(); switch (DatosDVHParam.Tabla ?? "") { case "Fam_Pat": { Bitacora.Descripcion = CadenaFamPat; break; } case "Usu_Fam": { Bitacora.Descripcion = CadenaUsuFam; break; } case "Usu_Pat": { Bitacora.Descripcion = CadenaUsuPat; break; } default: { Bitacora.Descripcion = CadenaEntidad; break; } } Bitacora.Criticidad = 1.ToString(); Bitacora.Usuario = "Sistema"; BitacoraAD.GrabarBitacora(Bitacora); var DVHDatosBitacora = new DVHEN(); DVHDatosBitacora.Tabla = "Bitacora"; DVHDatosBitacora.CodReg = Bitacora.CodBit; int DVHBitacora = CalcularDVH(DVHDatosBitacora); int ValorDVHAntiguoBit = GrabarDVH(DVHDatosBitacora, DVHBitacora); var DVVDatosBitacora = new DVVEN(); DVVDatosBitacora.Tabla = "Bitacora"; DVVDatosBitacora.ValorDVH = DVHBitacora; DVVDatosBitacora.TipoAccion = "Alta"; GrabarDVV(DVVDatosBitacora); } } // DVV int DVVComparar = ServicioAD.CalcularDVV(DVHGral); int DVVActual = ServicioAD.ObtenerDVVTabla(DVHGral); if (DVVActual != DVVComparar) { ErrorInt.Tabla = DVHGral.Tabla; if (ErrorInt.EstadoMensaje == false) { ErrorInt.Tipo = "DVV"; } else { string CadenaDVV = " & DVV"; ErrorInt.Tipo = ErrorInt.Tipo + CadenaDVV; } bool ExisteTablaDT = false; foreach (DataRow row in DatosDVHParam.DtIntegridadDVV.Rows) { if (Conversions.ToBoolean(Operators.ConditionalCompareObjectEqual(row["Tabla"], DVHGral.Tabla, false))) { ExisteTablaDT = true; break; } } if (ExisteTablaDT == false) { DatosDVHParam.DtIntegridadDVV.Rows.Add(DVHGral.Tabla); } string CadenaEntidad = ServiciosC.Seguridad.Encriptar("Error de integridad DVV. Tabla: " + DVHGral.Tabla); if (!ServicioAD.ExisteRegistroIntegridad(CadenaEntidad)) { var Bitacora = new BitacoraEN(); Bitacora.Descripcion = CadenaEntidad; Bitacora.Criticidad = 1.ToString(); Bitacora.Usuario = "Sistema"; BitacoraAD.GrabarBitacora(Bitacora); var DVHDatosBitacora = new DVHEN(); DVHDatosBitacora.Tabla = "Bitacora"; DVHDatosBitacora.CodReg = Bitacora.CodBit; int DVHBitacora = CalcularDVH(DVHDatosBitacora); int ValorDVHAntiguoBit = GrabarDVH(DVHDatosBitacora, DVHBitacora); var DVVDatosBitacora = new DVVEN(); DVVDatosBitacora.Tabla = "Bitacora"; DVVDatosBitacora.ValorDVH = DVHBitacora; DVVDatosBitacora.TipoAccion = "Alta"; GrabarDVV(DVVDatosBitacora); } } return ErrorInt; } catch (SqlException ex) { throw new CriticalException(ex.Message); } }