lunes, 25 de abril de 2022

Cumpleaños kabbalisticamente

 El significado del Cumpleaños kabbalisticamente según la Kabbalah. Escrito del Rav. Berg del Libro de Inmortalidad.

 

" Un Cumpleaños es una oportunidad para regresar al futuro. Nos conectamos con ese momento en que respiramos por primera vez. El tiempo no transcurre; se adelanta hasta el momento en que todo comenzó. Esta es la interpretación kabbalista del Tiempo; siempre es circular. Un cumpleaños nos recuerda que el origen de nuestra fortaleza y nuestro desarrollo futuro depende otra vez de nosotros. La fuerza del Creador en nosotros regresa tan plena como apareció en nuestro primer instante de vida. Cuando regresamos al día de nuestro nacimiento, viajamos a ese instante original con nuestra conciencia, nos despojamos de la realidad física ilusoria de los 365 días del año y volvemos a renacer como ser humano". Rav Berg.

 

jueves, 11 de abril de 2019

Validar campos para dejar escribir sólo Números

$(".numbers").keydown(function (e) {
                alert(e.keyCode);
            if($.inArray(e.keyCode,[46,8,9,27,13,40]) !== -1 ||
              (e.keyCode == 65 && e.ctrlKey === true) ||
                  (e.keyCode == 35 && e.keyCode <= 39)){
                return;
            }

            if ((e.shifkey|| (e.keyCode <48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105)){
                e.preventDefault();
            }
        });

miércoles, 20 de marzo de 2019

SIEMPRE ME PASA

lunes, 8 de febrero de 2010

Fallo del Update con Linq to Entities

Hoy cogería al arquitecto responsable de los mensajes de error de Linq to Entities por el cuello y lo ahogaría – pero sin matarlo – por la tarde perdida siguiendo un mensaje de error que desorientaba y que me hizo recorrer los profundos vericuetos de San Google para, al final, hallar la solución en mis narices.

Compañeros: Cuando tienes una bonita entidad y le creas un método de actualización como:
public bool ModificarAsignacion(string codDeposito, int idTurno)
{
Madrid_MovilidadEntities dbv = new Madrid_MovilidadEntities();
var asig = (from asignacion in dbv.Conductores_Gruas
where asignacion.codigo_deposito == codDeposito
&& asignacion.id_turno == idTurno
&& asignacion.asignado == true
select asignacion);

if (asig.LongCount() > 0)
{
foreach (Conductores_Gruas asignados in asig)
{
asignados.asignado = false;
}
dbv.SaveChanges();
           }
Y cuando, lo lanzas se te queda tostado el servidor - si le tienes un Try Catch puesto – o te sale un mensaje espantoso que dice algo así:

“La búsqueda de no se pudo actualizar entityset 'conductores_gruas' porque tiene <definingquery> y no existe ningún elemento <updatefunction> en el elemento <modificationfunctionmapping> que admita la operación actual. no obtuvo ningún resultado.”

No te agobies buscando y buscando. Es más no te compliques la vida cambiando de tecnología e intentándolo con Linq to SQL (tampoco te va a funcionar y tampoco te va a decir porqué). La solución es mucho más sencilla.<

En tu modelo de datos hay una tabla sin clave o claves primarias
 
Lo cual lleva al ORM a avisarte (si es cierto que avisa, pero no le hice ni caso) y te crea una vista o entidad de esta tabla SOLO PARA LECTURA.

Por lo cual la solución es modificar el modelo de datos para que esa tabla tenga al menos una clave primaria. Y actualizar (yo lo borré y lo hice de nuevo) el modelo de entidades… y voala!!

miércoles, 13 de marzo de 2019

sql

USE [Martz]
GO
/****** Objeto:  StoredProcedure [dbo].[Martz_transpaso1]    Fecha de la secuencia de comandos: 03/13/2019 16:48:27 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE  [dbo].[Martz_transpaso1] @Sucursal as nvarchar(50),  @Accion as nvarchar(50), @Vale as nvarchar(50)
AS
Begin
Declare @varQuery nvarchar (1000)

Select @varQuery =
       

'SELECT suc.NoParte, suc.NombreProd, cat.Categoria, suc.Unidad, LR.Precio_Venta, suc.FechaIngreso, suc.Serie, suc.Autorizo, suc.Mensajero, alm.Mercancia, suc.FecSist, suc.Usuario, suc.IdTraspaso '+
'FROM '+ @Sucursal  +' AS suc INNER JOIN '+
'dbo.CatCategoria AS cat ON suc.IdCategoria = cat.IdCategoria INNER JOIN '+
'dbo.CatAlmacen AS alm ON suc.StMercancia = alm.StMercancia INNER JOIN '+
'dbo.Lista_Refacciones AS LR ON suc.NoParte = LR.Producto '+
'WHERE   suc.NoParte <>'''''

If  @Accion <>'Buscar'
Select @varQuery =  @varQuery + ' AND IdTraspaso ='''''


Else If @Vale IS NOT  NULL
  Select @varQuery =  @varQuery + ' AND IdTraspaso =''' +@Vale +''''

 Select @varQuery =  @varQuery +' ORDER BY id DESC'
EXECUTE sp_executesql  @varQuery ;

martes, 12 de febrero de 2019

sat.cs

sing System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using System.Web;
using System.Xml;
using System.Xml.Linq;
using System.Threading;




namespace FE.Libreria
{

    public class Archivo
    {
       
        public HttpPostedFileBase File { get; set; }
        public HttpPostedFileBase Llave { get; set; }
        public string Password { get; set; }
        public short id{ get; set; }
        public short id1{ get; set; }
        public short id2{ get; set; }


    }


    public class Cadena
    {

        public string nombre { get; set; }
        public string rfc { get; set; }
        public string curp { get; set; }
        public string txtVigenciaDesde { get; set; }
        public string txtVigenciaHasta { get; set; }
        public string serial { get; set; }
        public string serial2 { get; set; }
        public string wValidaCert { get; set; }
        public string StatusCert { get; set; }
       
   
       
    }

    public class ValKey
    {
        public string mensaje { get; set; }
        public string Fin { get; set; }
    }
 

    public class SAT
    {







        public Cadena AbreCer(string certificado, string edo)
        {
            Cadena Cadena = new Cadena();

         
            string wAbreCert;
            string wVigencia;
            string wSHA1;
            string wSerial;
            string wnotBefore;
            string wnotAfter;
            string wModulusC;
            string wConvPEM;
            string wConvPEM2;
            string wValidacion;
            string wRFC;
            int differenceInDays;

            //-------------------------------------------------------------------------
            //Convierte el CERTIFICADO de formato DER a formato PEM con la siguiente instrucción de OpenSSL
            //openssl x509 -inform DER -outform PEM -in AAA010101AAAsd.cer -pubkey > AAA010101AAA.cer.pem
            //                                          |-----------------|         |-------------------|
            //                                                  |                             |
            //                                          Cerficado original             Certificado resultante
            //-------------------------------------------------------------------------
            //wConvPEM = "C:\\OpenSSL-Win64\\Bin\\openssl x509 -inform DER -outform PEM -in " & CertPathName & " -pubkey > C:\\OpenSSL-Win64\\Bin\\" & CertName & ".pem"
            //-------------------------------------------------------------------------
            //Extrae el contenido del CERTIFICADO con la siguiente instrucción de OpenSSL
            //openssl x509 -in AAA010101AAA.cer.pem –text > Cert1.TXT
            //                 |-------------------|        |-------|
            //                           |                      |
            //                Certificado en formato PEM    Archivo Resultante
            //-------------------------------------------------------------------------
            if (File.Exists("C:\\FE\\" + edo + "\\OpenSSL-Win64\\Bin\\Cert2.BAT"))
            {
                File.Delete("C:\\FE\\" + edo + "\\OpenSSL-Win64\\Bin\\Cert2.BAT");
            }
            if (File.Exists("C:\\FE\\" + edo + "\\OpenSSL-Win64\\Bin\\Cert1.BAT"))
            {
                File.Delete("C:\\FE\\" + edo + "\\OpenSSL-Win64\\Bin\\Cert1.BAT");
            }
            if (File.Exists("C:\\FE\\" + edo + "\\OpenSSL-Win64\\Bin\\Val2.BAT"))
            {
                File.Delete("C:\\FE\\" + edo + "\\OpenSSL-Win64\\Bin\\Val2.BAT");
            }
            if (File.Exists("C:\\FE\\" + edo + "\\OpenSSL-Win64\\Bin\\Val1.BAT"))
            {
                File.Delete("C:\\FE\\" + edo + "\\OpenSSL-Win64\\Bin\\Val1.BAT");
            }
            if (File.Exists("C:\\FE\\" + edo + "\\OpenSSL-Win64\\Bin\\Cert3.txt"))
            {
                File.Delete("C:\\FE\\" + edo + "\\OpenSSL-Win64\\Bin\\Cert3.txt");
            }
            if (File.Exists("C:\\FE\\" + edo + "\\OpenSSL-Win64\\Bin\\Vigencia.txt"))
            {
                File.Delete("C:\\FE\\" + edo + "\\OpenSSL-Win64\\Bin\\Vigencia.txt");
            }
            if (File.Exists("C:\\FE\\" + edo + "\\OpenSSL-Win64\\Bin\\sha1.txt"))
            {
                File.Delete("C:\\FE\\" + edo + "\\OpenSSL-Win64\\Bin\\sha1.txt");
            }
            if (File.Exists("C:\\FE\\" + edo + "\\OpenSSL-Win64\\Bin\\serial.txt"))
            {
                File.Delete("C:\\FE\\" + edo + "\\OpenSSL-Win64\\Bin\\serial.txt");
            }
            if (File.Exists("C:\\FE\\" + edo + "\\OpenSSL-Win64\\Bin\\NotBefore.txt"))
            {
                File.Delete("C:\\FE\\" + edo + "\\OpenSSL-Win64\\Bin\\NotBefore.txt");
                // Console.Write("Hola mundo");
                //Console.ReadKey();
            }

            if (File.Exists("C:\\FE\\" + edo + "\\OpenSSL-Win64\\Bin\\NotAfter.txt"))
            {
                File.Delete("C:\\FE\\" + edo + "\\OpenSSL-Win64\\Bin\\NotAfter.txt");
            }
            if (File.Exists("C:\\FE\\" + edo + "\\OpenSSL-Win64\\Bin\\RFC.txt"))
            {
                File.Delete("C:\\FE\\" + edo + "\\OpenSSL-Win64\\Bin\\RFC.txt");
                // Console.Write("Hola mundo");
                //Console.ReadKey();
            }
            if (File.Exists("C:\\FE\\" + edo + "\\OpenSSL-Win64\\Bin\\ModulusC.txt"))
            {
                File.Delete("C:\\FE\\" + edo + "\\OpenSSL-Win64\\Bin\\ModulusC.txt");
            }
            if (File.Exists("C:\\FE\\" + edo + "\\OpenSSL-Win64\\Bin\\Validacion.txt"))
            {
                File.Delete("C:\\FE\\" + edo + "\\OpenSSL-Win64\\Bin\\Validacion.txt");
            }



            //-------------------------------------------------------------------------
            //No quitar la comilla inicial a las siguientes 4 lineas, ya que son
            //solo de ejemplo del uso de OpenSSL
            //-------------------------------------------------------------------------
            //openssl x509 -in cert.pem -sha1 'Para obtener la huella SHA1
            //openssl x509 -in cert.pem -noout -sha1 -serial 'Para obtener NUMERO DE SERIE
            //openssl x509 -in cert.pem -noout -sha1 -startdate 'Para obtener el campo notBefore
            //openssl x509 -in cert.pem -noout -sha1 -enddate 'Para obtener el campo notAfter
            wConvPEM = "C:\\FE\\" + edo + "\\OpenSSL-Win64\\Bin\\openssl x509 -inform DER -outform PEM -in " + certificado + ".cer -pubkey > C:\\FE\\" + edo + "\\OpenSSL-Win64\\Bin\\" + certificado + ".pem";
            wConvPEM2 = "C:\\FE\\" + edo + "\\OpenSSL-Win64\\Bin\\openssl x509 -in " + certificado + ".cer -inform DER -out C:\\FE\\" + edo + "\\Test\\" + certificado + ".pem -outform PEM";
            wAbreCert = "C:\\FE\\" + edo + "\\OpenSSL-Win64\\Bin\\openssl x509 -in C:\\FE\\" + edo + "\\OpenSSL-Win64\\Bin\\" + certificado + ".pem -text > C:\\FE\\" + edo + "\\OpenSSL-Win64\\Bin\\Cert1.txt";
            wVigencia = "C:\\FE\\" + edo + "\\OpenSSL-Win64\\Bin\\openssl x509 -in C:\\FE\\" + edo + "\\OpenSSL-Win64\\Bin\\" + certificado + ".pem -noout -dates > C:\\FE\\" + edo + "\\OpenSSL-Win64\\Bin\\Vigencia.txt";
            wSHA1 = "C:\\FE\\" + edo + "\\OpenSSL-Win64\\Bin\\openssl x509 -in C:\\FE\\" + edo + "\\OpenSSL-Win64\\Bin\\" + certificado + ".pem -sha1 > C:\\FE\\" + edo + "\\OpenSSL-Win64\\Bin\\SHA1.txt";
            wSerial = "C:\\FE\\" + edo + "\\OpenSSL-Win64\\Bin\\openssl x509 -in C:\\FE\\" + edo + "\\OpenSSL-Win64\\Bin\\" + certificado + ".pem -noout -sha1 -serial > C:\\FE\\" + edo + "\\OpenSSL-Win64\\Bin\\Serial.txt";
            wnotBefore = "C:\\FE\\" + edo + "\\OpenSSL-Win64\\Bin\\openssl x509 -in C:\\FE\\" + edo + "\\OpenSSL-Win64\\Bin\\" + certificado + ".pem -noout -sha1 -startdate > C:\\FE\\" + edo + "\\OpenSSL-Win64\\Bin\\NotBefore.txt";
            wnotAfter = "C:\\FE\\" + edo + "\\OpenSSL-Win64\\Bin\\openssl x509 -in C:\\FE\\" + edo + "\\OpenSSL-Win64\\Bin\\" + certificado + ".pem -noout -sha1 -enddate > C:\\FE\\" + edo + "\\OpenSSL-Win64\\Bin\\NotAfter.txt";
            wRFC = "C:\\FE\\" + edo + "\\OpenSSL-Win64\\Bin\\openssl x509 -in C:\\FE\\" + edo + "\\OpenSSL-Win64\\Bin\\" + certificado + ".pem -noout -sha1 -subject > C:\\FE\\" + edo + "\\OpenSSL-Win64\\Bin\\RFC.txt";
            wModulusC = "C:\\FE\\" + edo + "\\OpenSSL-Win64\\Bin\\openssl x509 -in C:\\FE\\" + edo + "\\OpenSSL-Win64\\Bin\\" + certificado + ".pem -noout -modulus > C:\\FE\\" + edo + "\\OpenSSL-Win64\\Bin\\ModulusC.txt";
           
           

            //Crea el archivo Cert1.BAT
            StreamWriter escritura = File.AppendText("C:\\FE\\" + edo + "\\OpenSSL-Win64\\Bin\\Cert1.bat");
            escritura.WriteLine(wConvPEM);
            escritura.WriteLine(wConvPEM2);
            escritura.WriteLine(wAbreCert);
            escritura.WriteLine(wSHA1);
            escritura.WriteLine(wSerial);
            escritura.WriteLine(wnotBefore);
            escritura.WriteLine(wnotAfter);
            escritura.WriteLine(wRFC);
            escritura.WriteLine(wModulusC);
            escritura.WriteLine(wVigencia);
           
            escritura.Close();
            //-------------------------------------------------------------------------
            //Ejecuta el archivo BAT
            //Se utiliza WSH en lugar de Shell wAppPath & "Bin\Cert1.bat", vbHide
            //para que continue con el proceso hasta que haya terminado de ejecutar el BAT
            //wRUN = oShl.Run("C:\\OpenSSL-Win64\\Bin\\Cert1.bat", SW_HIDE, True);
            StreamWriter escritura5 = File.AppendText("C:\\FE\\" + edo + "\\OpenSSL-Win64\\Bin\\Cert2.bat");

            escritura5.WriteLine("cd/");
            escritura5.WriteLine("CD FE");
            escritura5.WriteLine("CD "+ edo);
            escritura5.WriteLine("CD OpenSSL-Win64");
            escritura5.WriteLine("CD Bin");
            escritura5.WriteLine("Start Cert1.bat");
            escritura5.Close();

           

            System.Diagnostics.Process proc = new System.Diagnostics.Process();
            proc.EnableRaisingEvents = true;
            proc.StartInfo.FileName = "C:\\FE\\" + edo + "\\OpenSSL-Win64\\Bin\\Cert2.bat";
            proc.Start();
            proc.WaitForExit();


            for (int i = 0; i < 5; i++)
            {
               
                Thread.Sleep(5000);
            }

            //Call oShl.Popup("Se ha leido la información del certificado", 4, "WSH terminado", vbInformation)
            //-------------------------------------------------------------------------
           
            StreamReader Lectura;
            try
            {
                Lectura = File.OpenText("C:\\FE\\" + edo + "\\OpenSSL-Win64\\Bin\\RFC.txt");
                Cadena.nombre = Lectura.ReadToEnd();
                Lectura.Close();
            }
            catch (FileNotFoundException fe)
            {
                Console.WriteLine("!Error¡" + fe.Message);
            }
            try
            {
                Lectura = File.OpenText("C:\\FE\\" + edo + "\\OpenSSL-Win64\\Bin\\NotBefore.txt");
                Cadena.txtVigenciaDesde = Lectura.ReadLine();
                Lectura.Close();
            }
            catch (FileNotFoundException fe)
            {
                Console.WriteLine("!Error¡" + fe.Message);
            }

            try
            {
                Lectura = File.OpenText("C:\\FE\\" + edo + "\\OpenSSL-Win64\\Bin\\NotAfter.txt");
                Cadena.txtVigenciaHasta = Lectura.ReadLine();
                Lectura.Close();
            }
            catch (FileNotFoundException fe)
            {
                Console.WriteLine("!Error¡" + fe.Message);
            }

           
           
         

            try
            {
                Lectura = File.OpenText("C:\\FE\\" + edo + "\\OpenSSL-Win64\\Bin\\Serial.txt");
                Cadena.serial = Lectura.ReadLine();
                Lectura.Close();

            }
            catch (FileNotFoundException fe)
            {
                Console.WriteLine("!Error¡" + fe.Message);
            }

           

   

            if ((Cadena.nombre)!= null)
            {
                Cadena.nombre = Cadena.nombre.Replace("subject", "");
                Cadena.nombre = Cadena.nombre.Replace("CN", "");
                Cadena.nombre = Cadena.nombre.Replace("name", "");
                Cadena.nombre = Cadena.nombre.Replace("O", "");
                Cadena.nombre = Cadena.nombre.Replace("C", "");
                Cadena.nombre = Cadena.nombre.Replace("emailAddress", "");
                Cadena.nombre = Cadena.nombre.Replace("x500UniqueIdentifier", "");
                Cadena.nombre = Cadena.nombre.Replace("serialNumber", "");
                Cadena.nombre = Cadena.nombre.Replace("=", "");
                string[] campos = new string[8];
                char[] delimitador = { '/' };
                campos = Cadena.nombre.Split(delimitador);
                Cadena.nombre = campos[3].Trim();
             
                Cadena.rfc = campos[5].Trim();
                Cadena.curp = campos[6].Trim();
             

            }

            if ((Cadena.txtVigenciaDesde) != null)
            {
               
                char[] MyChar = { ':', '=' };
                string txtNotBefore = Cadena.txtVigenciaDesde.TrimStart(MyChar);
                Cadena.txtVigenciaDesde = GetDateGS(txtNotBefore);
            }

            if ((Cadena.txtVigenciaHasta) != null)
            {
                char[] MyChar = { ':', '=' };
                string txtNotAfter = Cadena.txtVigenciaHasta.TrimStart(MyChar);
                Cadena.txtVigenciaHasta = GetDateGS(txtNotAfter);

                // Difference in days, hours, and minutes.
                TimeSpan ts = Convert.ToDateTime(Cadena.txtVigenciaHasta) - DateTime.Now;

                 differenceInDays = ts.Days;

                switch (differenceInDays)
                {
                    case 30:
                        Cadena.wValidaCert = "30 Dias antes del vencimiento";
                        break;
                    case 15:
                        Cadena.wValidaCert = "15 Dias antes del vencimiento";
                        break;
                    case 8:
                        Cadena.wValidaCert = "8  Dias antes del vencimiento";
                        break;
                 
                       
                    default:
                        if((differenceInDays)>=0){
                            Cadena.wValidaCert = "Vence en: " + differenceInDays + " dias ";

                        }
                        if((differenceInDays)<0){
                            Cadena.wValidaCert = "Vencido";
                        }
                    break;   
                }
            }

            if ((Cadena.serial) != null)
            {
                char[] MyChar = { 's', 'e', 'r', 'i', 'a', 'l', '=' };
                Cadena.serial2 = Cadena.serial.TrimStart(MyChar);
                Cadena.serial = Cadena.serial2.Substring(1, 1) + Cadena.serial2.Substring(3, 1) + Cadena.serial2.Substring(5, 1) + Cadena.serial2.Substring(7, 1) + Cadena.serial2.Substring(9, 1) + Cadena.serial2.Substring(11, 1) + Cadena.serial2.Substring(13, 1) + Cadena.serial2.Substring(15, 1) + Cadena.serial2.Substring(17, 1) + Cadena.serial2.Substring(19, 1) + Cadena.serial2.Substring(21, 1) + Cadena.serial2.Substring(23, 1) + Cadena.serial2.Substring(25, 1) + Cadena.serial2.Substring(27, 1) + Cadena.serial2.Substring(29, 1) + Cadena.serial2.Substring(31, 1) + Cadena.serial2.Substring(33, 1) + Cadena.serial2.Substring(35, 1) + Cadena.serial2.Substring(37, 1) + Cadena.serial2.Substring(39, 1);

            }

            if ((Cadena.wValidaCert) != "Vencido")
            {



                string Val1 = Cadena.serial2.Substring(23, 1);
                wValidacion = "";
                switch (Val1)
                {
                    case "0":

                        wValidacion = "C:\\FE\\" + edo + "\\OpenSSL-Win64\\Bin\\openssl ocsp -issuer C:\\FE\\" + edo + "\\Test\\AC0_SAT.pem -cert C:\\FE\\" + edo + "\\Test\\" + certificado + ".pem -text -url https://cfdi.sat.gob.mx/edofiel -VAfile C:\\FE\\" + edo + "\\Test\\ocsp.ac0_sat.pem -header host cfdi.sat.gob.mx > C:\\FE\\" + edo + "\\OpenSSL-Win64\\Bin\\Validacion.txt";

                        break;
                    case "1":
                        wValidacion = "C:\\FE\\" + edo + "\\OpenSSL-Win64\\Bin\\openssl ocsp -issuer C:\\FE\\" + edo + "\\Test\\AC1_SAT.pem -cert C:\\FE\\" + edo + "\\Test\\" + certificado + ".pem -text -url https://cfdi.sat.gob.mx/edofiel -VAfile C:\\FE\\" + edo + "\\Test\\ocsp.ac1_sat.pem -header host cfdi.sat.gob.mx > C:\\FE\\" + edo + "\\OpenSSL-Win64\\Bin\\Validacion.txt";

                        break;
                    case "2":
                        wValidacion = "C:\\FE\\" + edo + "\\OpenSSL-Win64\\Bin\\openssl ocsp -issuer C:\\FE\\" + edo + "\\Test\\AC2_SAT.pem -cert C:\\FE\\" + edo + "\\Test\\" + certificado + ".pem -text -url https://cfdi.sat.gob.mx/edofiel -VAfile C:\\FE\\" + edo + "\\Test\\ocsp.ac2_sat.pem -header host cfdi.sat.gob.mx > C:\\FE\\" + edo + "\\OpenSSL-Win64\\Bin\\Validacion.txt";

                        break;
                    case "3":
                        wValidacion = "C:\\FE\\" + edo + "\\OpenSSL-Win64\\Bin\\openssl ocsp -issuer C:\\FE\\" + edo + "\\Test\\AC3_SAT.pem -cert C:\\FE\\" + edo + "\\Test\\" + certificado + ".pem -text -url https://cfdi.sat.gob.mx/edofiel -VAfile C:\\FE\\" + edo + "\\Test\\ocsp.ac3_sat.pem -header host cfdi.sat.gob.mx > C:\\FE\\" + edo + "\\OpenSSL-Win64\\Bin\\Validacion.txt";

                        break;
                    default:
                        wValidacion = "C:\\FE\\" + edo + "\\OpenSSL-Win64\\Bin\\openssl ocsp -issuer C:\\FE\\" + edo + "\\Test\\AC4_SAT.pem -cert C:\\FE\\" + edo + "\\Test\\" + certificado + ".pem -text -url https://cfdi.sat.gob.mx/edofiel -VAfile C:\\FE\\" + edo + "\\Test\\ocsp.ac4_sat.pem -header host cfdi.sat.gob.mx > C:\\FE\\" + edo + "\\OpenSSL-Win64\\Bin\\Validacion.txt";

                        break;
                }

                StreamWriter escritura9 = File.AppendText("C:\\FE\\" + edo + "\\OpenSSL-Win64\\Bin\\Val1.bat");
                escritura9.WriteLine(wValidacion);
                escritura9.Close();

                StreamWriter escritura4 = File.AppendText("C:\\FE\\" + edo + "\\OpenSSL-Win64\\Bin\\Val2.bat");

                escritura4.WriteLine("cd/");
                escritura4.WriteLine("CD FE");
                escritura4.WriteLine("CD " + edo);
                escritura4.WriteLine("CD OpenSSL-Win64");
                escritura4.WriteLine("CD Bin");
                escritura4.WriteLine("Start Val1.bat");
                escritura4.Close();



                System.Diagnostics.Process proc1 = new System.Diagnostics.Process();
                proc1.EnableRaisingEvents = true;
                proc1.StartInfo.FileName = "C:\\FE\\" + edo + "\\OpenSSL-Win64\\Bin\\Val2.bat";
                proc1.Start();
                proc1.WaitForExit();

                for (int i = 0; i < 10; ++i)
                {
                    Thread.Sleep(3000);
                }

                try
                {
                    Lectura = File.OpenText("C:\\FE\\" + edo + "\\OpenSSL-Win64\\Bin\\Validacion.txt");
                    Cadena.StatusCert = Lectura.ReadToEnd();
                    Lectura.Close();
                   
                   
                   
                    if ((Cadena.StatusCert) != null)
                    {
                        Cadena.StatusCert = Cadena.StatusCert.Replace("  ", " ");
                        string[] arreglo = Cadena.StatusCert.Split(' ');
                        for (int i = 0; i < arreglo.Length; i++)
                        {

                            if (arreglo[i].Trim() == "good")
                            {
                                Cadena.StatusCert = "Bueno";
                                break;
                            }
                            if (arreglo[i].Trim() == "revoqued" || arreglo[i].Trim() == "revoked\n" || arreglo[i].Trim() == "revoked")
                            {
                                Cadena.StatusCert = "Revocado";
                                break;
                            }

                        }

                    }


                    else
                    {
                        Cadena.StatusCert = "Revocado";
                    }
                }
                catch (FileNotFoundException fe)
                {
                    Console.WriteLine("!Error¡" + fe.Message);
                }




            }     
            return Cadena;
        }

       
       
        public static string GetDateGS(string wFechaGMT)
       
        {
             //El formato de la fecha viene en (GMT) Greenwich Mean Time
             //notBefore=Aug 21 15:22:10 2008 GMT
             //'notAfter=Aug 21 15:22:10 2010 GMT
            string wFe1;
            string wDay;
            string wMonth;
            string wMonthN;
            string wDayN;
            string wYear;
            string wDate;
            string resultado;
           
            wFechaGMT = wFechaGMT.Trim();
            wFechaGMT = wFechaGMT.ToUpper();
            wFe1 = "";
           
           
            if (wFechaGMT.Substring(0,9) == "NOTBEFORE")
            {
                wFe1 = wFechaGMT.Substring( 10, 21);
            }
           
            if (wFechaGMT.Substring(0, 8) == "NOTAFTER") {
                wFe1 = wFechaGMT.Substring(9, 21);
            }
            if (wFe1 == "") {
                resultado = "";
                return resultado;
            }
            wDay = wFe1.Substring( 4, 2);
            wMonth =wFe1.Substring(0, 3);
            wYear = wFe1.Substring(16, 5);

            switch (wDay.Trim())
            {
                case "1":
                    wDayN = "01";
                    break;
                case "2":
                    wDayN = "02";
                    break;
                case "3":
                    wDayN = "03";
                    break;
                case "4":
                    wDayN = "04";
                    break;
                case "5":
                    wDayN = "05";
                    break;
                case "6":
                    wDayN = "06";
                    break;
                case "7":
                    wDayN = "07";
                    break;
                case "8":
                    wDayN = "08";
                    break;
                case "9":
                    wDayN = "09";
                    break;
                default:
                    wDayN = wDay;
                    break;
            }

            switch (wMonth)
            {
                case  "JAN":
                    wMonthN = "01";
                    break;
                case "FEB":
                    wMonthN = "02";
                    break;
                case "MAR":
                    wMonthN = "03";
                    break;
                case  "APR":
                    wMonthN = "04";
                    break;
                case  "MAY":
                    wMonthN = "05";
                    break;
                case  "JUN":
                    wMonthN = "06";
                    break;
                case  "JUL":
                    wMonthN = "07";
                    break;
                case  "AUG":
                    wMonthN = "08";
                    break;
                case  "SEP":
                    wMonthN = "09";
                    break;
                case  "OCT":
                    wMonthN = "10";
                    break;
                case  "NOV" :
                    wMonthN = "11";
                    break;
                case "DEC":
                    wMonthN = "12";
                    break;
                default:
                    wMonthN = "00";
                    break;
            }
            wDate = wDayN + "/" + wMonthN + "/" + wYear;
   //GetDateGS = QuitaChars(wDate, "0123456789-/");
            resultado = wDate;
            return resultado;
        }

        public ValKey AbreKey( string key, string Password, string edo1)
        {
            ValKey Valkey = new ValKey();
           

            StreamReader Lectura;
           
            string wConvPEM;
            string wModulusK;
            if (File.Exists("C:\\FE\\" + edo1 + "\\OpenSSL-Win64\\Bin\\Key1.BAT"))
            {
                File.Delete("C:\\FE\\" + edo1 + "\\OpenSSL-Win64\\Bin\\Key1.BAT");
            }
            if (File.Exists("C:\\FE\\" + edo1 + "\\OpenSSL-Win64\\Bin\\Key2.BAT"))
            {
                File.Delete("C:\\FE\\" + edo1 + "\\OpenSSL-Win64\\Bin\\Key2.BAT");
            }

            if (File.Exists("C:\\FE\\" + edo1 + "\\OpenSSL-Win64\\Bin\\ModulKey1.BAT"))
            {
                File.Delete("C:\\FE\\" + edo1 + "\\OpenSSL-Win64\\Bin\\ModulKey1.BAT");
            }
            if (File.Exists("C:\\FE\\" + edo1 + "\\OpenSSL-Win64\\Bin\\ModulKey.BAT"))
            {
                File.Delete("C:\\FE\\" + edo1 + "\\OpenSSL-Win64\\Bin\\ModulKey.BAT");
            }
            if (File.Exists("C:\\FE\\" + edo1 + "\\OpenSSL-Win64\\Bin\\pkey.key.pem"))
            {
                File.Delete("C:\\FE\\" + edo1 + "\\OpenSSL-Win64\\Bin\\pkey.key.pem");
            }

            if (File.Exists("C:\\FE\\" + edo1 + "\\OpenSSL-Win64\\Bin\\ModulusK.txt"))
            {
                File.Delete("C:\\FE\\" + edo1 + "\\OpenSSL-Win64\\Bin\\ModulusK.txt");
            }
            if (File.Exists("C:\\FE\\" + edo1 + "\\OpenSSL-Win64\\Bin\\ModulusK.txt"))
            {
                File.Delete("C:\\FE\\" + edo1 + "\\OpenSSL-Win64\\Bin\\ModulusK.txt");
            }
  //'------------------------------------------------------------------
  //'Crea el archivo SELLO.BAT que utilizará para sellar las facturas
  //'-------------------------------------------------------------------
           
         
 


  //'------------------------------------------------------------------
  //'Convierte la llave de formato DER a formato PEM
  //'-------------------------------------------------------------------
            wConvPEM = "C:\\FE\\" + edo1 + "\\OpenSSL-Win64\\Bin\\openssl pkcs8 -inform DER -in " + key + ".key -passin pass:" + Password + " -out C:\\FE\\" + edo1 + "\\OpenSSL-Win64\\Bin\\pkey.key.pem";
            StreamWriter escritura1 = File.AppendText("C:\\FE\\" + edo1 + "\\OpenSSL-Win64\\Bin\\Key1.bat");
            escritura1.WriteLine(wConvPEM);
            escritura1.Close();
  //'Se utiliza WSH en lugar de Shell wAppPath & "Bin\\key1.bat", vbNormalFocus
  //'para que continue con el proceso hasta que haya terminado de ejecutar el BAT
   //wRUN = oShl.Run("C:\\OpenSSL-Win64\\Bin\\key1.bat", SW_SHOWNORMAL, True); //'SW_SHOWNORMAL  SW_SHOWMAXIMIZED
            StreamWriter escritura4 = File.AppendText("C:\\FE\\" + edo1 + "\\OpenSSL-Win64\\Bin\\Key2.bat");
            escritura4.WriteLine("cd/");
            escritura4.WriteLine("CD FE");
            escritura4.WriteLine("CD "+ edo1 +"");
            escritura4.WriteLine("CD OpenSSL-Win64");
            escritura4.WriteLine("CD Bin");
            escritura4.WriteLine("Start Key1.bat");
            escritura4.Close();
           
           
            System.Diagnostics.Process proc = new System.Diagnostics.Process();
            proc.EnableRaisingEvents = true;
            proc.StartInfo.FileName = "C:\\FE\\" + edo1 + "\\OpenSSL-Win64\\Bin\\Key2.bat";
            proc.Start();
            proc.WaitForExit();

            for (int i = 0; i < 10; ++i)
            {
                Thread.Sleep(2000);
            }
         
         
            try{
                string text = File.ReadAllText("C:\\FE\\" + edo1 + "\\OpenSSL-Win64\\Bin\\pkey.key.pem");
                if (text.Length == 0)
                {
                    Valkey.Fin="PASSWORD_MAL";
                }
                else
                {


                    //'------------------------------------------------------------------
                    //'Crea el MODULUS de la llave para verificar que corresponda al certificado
                    //'-------------------------------------------------------------------
                    wModulusK = "C:\\FE\\" + edo1 + "\\OpenSSL-Win64\\Bin\\openssl rsa  -in C:\\FE\\" + edo1 + "\\OpenSSL-Win64\\Bin\\pkey.key.pem  -noout -modulus > C:\\FE\\" + edo1 + "\\OpenSSL-Win64\\Bin\\ModulusK.txt";

                    StreamWriter escritura2 = File.AppendText("C:\\FE\\" + edo1 + "\\OpenSSL-Win64\\Bin\\ModulKey.bat");
                    escritura2.WriteLine(wModulusK);
                    escritura2.Close();

                    StreamWriter escrituras = File.AppendText("C:\\FE\\" + edo1 + "\\OpenSSL-Win64\\Bin\\ModulKey1.bat");

                    escrituras.WriteLine("cd/");
                    escrituras.WriteLine("CD FE");
                    escrituras.WriteLine("CD " + edo1 + "");
                    escrituras.WriteLine("CD OpenSSL-Win64");
                    escrituras.WriteLine("CD Bin");
                    escrituras.WriteLine("Start ModulKey.bat");
                    escrituras.Close();


                    System.Diagnostics.Process proc1 = new System.Diagnostics.Process();
                    proc1.EnableRaisingEvents = true;
                    proc1.StartInfo.FileName = "C:\\FE\\" + edo1 + "\\OpenSSL-Win64\\Bin\\ModulKey1.bat";
                    proc1.Start();
                    //wRUN = oShl.Run("C:\\OpenSSL-Win64\\Bin\\ModulKey.bat", SW_HIDE, True);

                    //'------------------------------------------------------------------
                    //'Comprueba que la llave y el certificado correspondan each other
                    //'-------------------------------------------------------------------

                    for (int i = 0; i < 10; ++i)
                    {
                        Thread.Sleep(2000);
                    }
                    string txtModulusC = "";
                    string txtModulusK = "";


                    try
                    {
                        Lectura = File.OpenText("C:\\FE\\" + edo1 + "\\OpenSSL-Win64\\Bin\\ModulusC.txt");
                        txtModulusC = Lectura.ReadLine();
                        Lectura.Close();
                    }
                    catch (FileNotFoundException fe)
                    {
                        Console.WriteLine("!Error¡" + fe.Message);
                    }

                    try
                    {
                        Lectura = File.OpenText("C:\\FE\\" + edo1 + "\\OpenSSL-Win64\\Bin\\ModulusK.txt");
                        txtModulusK = Lectura.ReadLine();
                        Lectura.Close();
                    }
                    catch (FileNotFoundException fe)
                    {
                        Console.WriteLine("!Error¡" + fe.Message);
                    }

                    if (txtModulusC != txtModulusK)
                    {
                        Valkey.mensaje ="Incorrecta";
                        Valkey.Fin = "Incorrecto";
                    }
                    else
                    {
                        Valkey.mensaje = "Correcta";
                        Valkey.Fin = "Proceso concluido exitosamente";
                    }

                   
                } 
            }
            catch (FileNotFoundException fe)
            {
                Console.WriteLine("!Error¡" + fe.Message);
            }
            return Valkey;
        }

   
public  object True { get; set; }}
}

lunes, 11 de febrero de 2019

MVC lectura de archivos TXT

(int.Parse(Variable))
Ayuda a cambiar de string a int una varible.


Ayuda a leer la información en una archivo .txt y graba la información en una variable
try
            {
                Lectura = File.OpenText("C:\\FE\\" + edo + "\\OpenSSL-Win64\\Bin\\NotAfter.txt");
                Cadena.txtVigenciaHasta = Lectura.ReadLine();
                Lectura.Close();
            }
            catch (FileNotFoundException fe)
            {
                Console.WriteLine("!Error¡" + fe.Message);
            }



lunes, 21 de enero de 2019

MVC LLenar una lista con la misma información de la tabla




Ayuda a llenar una lista con la información de una tabla quitando con el distinct la duplicidad y la lista se creara con un el mismo dato para clave y para nombre

ViewBag.Unidad  = entidades.Lista_Refacciones.Select(p => new LstUnidad { cveUnidad = p.Unidad, nomUnidad = p.Unidad }).Distinct().ToList<LstUnidad>();

Ayuda en la creación del catalogo de sepomex y en la creación de los catálogos que se auto llenan.


Para la colonia, municipio y estado.