Пример #1
0
        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();
        }
Пример #2
0
        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);
            }
        }