private bool ValidacionesArchivo(string tipoArchivo, int tipoRegla)
        {
            var exitoValidacion = 0;

            try
            {
                string regla = null;
                using (var context = new DISEntities())
                {
                    if (tipoRegla == 2 & ContadorErrores == 0)
                    {
                        var valorRetorno = context.pa_file_ArchivoValido(IdArchivo);
                        InsertaAuditoria(Convert.ToInt32(UsuarioModificacion), "Se valida archivo", "pa_file_ArchivoValido", IdArchivo);
                        exitoValidacion = int.Parse(valorRetorno.ToString());
                        if (exitoValidacion == 0)
                        {
                            ContadorErrores = ContadorErrores + 1;
                            MensageError    = "Error en Cuadratura de primas";
                            InsertaAuditoria(Convert.ToInt32(UsuarioModificacion), MensageError, NombreArchivo, IdArchivo);
                            return(false);
                        }
                    }
                    var resultado = context.pa_file_ObtieneReglavalidacionArchivo(tipoArchivo, tipoRegla);
                    regla = resultado.FirstOrDefault();
                }

                if (!string.IsNullOrEmpty(regla))
                {
                    string[] conditionString = null;
                    regla           = regla.Replace("@NombreArchivo", NombreArchivo);
                    regla           = regla.Replace("@IdArchivo", IdArchivo.ToString());
                    conditionString = regla.Split(';');

                    switch (conditionString[0].Substring(0, 3))
                    {
                    case "SP#":
                        if (ExecSpBool(conditionString[0].Substring(3)))
                        {
                            exitoValidacion = 1;
                        }
                        else
                        {
                            exitoValidacion = 0;
                        }
                        InsertaAuditoria(Convert.ToInt32(UsuarioModificacion), conditionString[0].Substring(3),
                                         conditionString[0].Substring(3), IdArchivo);
                        break;
                    }

                    if (exitoValidacion == 1)
                    {
                        switch (conditionString[1].Substring(0, 3))
                        {
                        case "SP#":
                            if (ExecSpBool(conditionString[1].Substring(3)))
                            {
                                exitoValidacion = 1;
                            }
                            else
                            {
                                exitoValidacion = 0;
                            }
                            InsertaAuditoria(Convert.ToInt32(UsuarioModificacion), conditionString[1].Substring(3),
                                             conditionString[1].Substring(3), IdArchivo);
                            break;
                        }
                    }
                    else
                    {
                        switch (conditionString[2].Substring(0, 3))
                        {
                        case "SP#":
                            if (ExecSpBool(conditionString[2].Substring(3)))
                            {
                                exitoValidacion = 1;
                            }
                            else
                            {
                                exitoValidacion = 0;
                            }
                            InsertaAuditoria(Convert.ToInt32(UsuarioModificacion), conditionString[2].Substring(3),
                                             conditionString[2].Substring(3), IdArchivo);
                            break;
                        }
                    }

                    return(exitoValidacion == 1);
                }
                return(true);
            }
            catch (Exception ex)
            {
                Observacion = ex.Message;
                return(false);
            }
        }