예제 #1
0
        public string cadenaOriginal(Models.docCedulaModel docCedula, string idCedulaE, string idCedulaF, string fechaS, byte idFirmante)
        {
            var firmante = db.CAT_FIRMANTE.Find(idFirmante);
            var uuId     = Uuid.NewSqlSequentialId();
            var cedulaE  = Uuid.NewNamespaceUuid(uuId, idCedulaE);
            var cedulaF  = Uuid.NewNamespaceUuid(uuId, idCedulaF);

            string cadena = "||1.0|";

            cadena += cedulaE + "|";
            cadena += cedulaF + "|";
            cadena += docCedula.CURP + "|";
            cadena += docCedula.NOMBRE + "|";
            cadena += docCedula.PRIMERAPELLIDO + "|";
            cadena += docCedula.SEGUNDOAPELLIDO + "|";
            cadena += fechaS + "|";
            cadena += firmante.CERTIFICADO + "|";    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
            cadena += firmante.NO_CERTIFICADO + "|"; //00001000000502102401
            cadena += "|";
            return(cadena);
        }
예제 #2
0
        public IHttpActionResult PostCedula(Models.docCedulaModel docCedula)
        {
            long   idCedula;
            string fechaCarga;
            byte   idFirmante;
            string tipoCedula;
            string cedulaF;

            Cs.sellado sellado = new Cs.sellado();

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            //VALIDAR USUARIO
            var    usuario    = rolUsuario.tomarUsuario();
            int    ban        = usuario.ban;
            string filtro     = usuario.correo;
            int    id_usuario = usuario.id_usuario;
            int    perfil     = usuario.id_rol;
            string alcances   = usuario.alcances;
            int    maxb       = usuario.maxb;

            if (ban <= maxb)
            {
                if (docCedula.CEDULAFEDERAL == null || docCedula.CEDULAFEDERAL == "")
                {
                    cedulaF = "0000000";
                }
                else
                {
                    cedulaF = docCedula.CEDULAFEDERAL;
                }

                ////VALIDACION TITULO ANTERIORMENTE REGISTRADO
                int clvCarrera      = Int32.Parse(docCedula.CVECARRERA);
                var tituloDuplicado = db.DOC_CEDULA.Where(c => c.ID_CARRERA == clvCarrera && c.CURP == docCedula.CURP).FirstOrDefault();

                if (tituloDuplicado != null)
                {
                    return(BadRequest("ERROR: El título ha sido cargado previamente"));
                }

                //////CREAR Y CARGAR CEDULA
                DOC_CEDULA dOC_CEDULA = (new DOC_CEDULA()
                {
                    CURP = docCedula.CURP,
                    NOMBRES = docCedula.NOMBRE,
                    PRIMER_APELLIDO = docCedula.PRIMERAPELLIDO,
                    SEGUNDO_APELLIDO = docCedula.SEGUNDOAPELLIDO,
                    INSTITUCION = docCedula.NOMBREINSTITUCION,
                    ID_CARRERA = Int32.Parse(docCedula.CVECARRERA),
                    DESC_CARRERA = docCedula.NOMBRECARRERA,

                    TIPO_CEDULA = "A",
                    ID_ESTATUS = 1,
                    FECHA_CARGA = DateTime.Now,
                    FECHA_SELLO = DateTime.Now,
                    CEDULA_FEDERAL = cedulaF,
                    SELLO = "",
                    HASH_QR = "",
                    ID_FIRMANTE = 1,
                });

                db.DOC_CEDULA.Add(dOC_CEDULA);
                try
                {
                    db.SaveChanges();
                    var urlId = CreatedAtRoute("DefaultApi", new { id = dOC_CEDULA.ID_CEDULA }, dOC_CEDULA);
                    idCedula = urlId.Content.ID_CEDULA;
                    var urlFechaS = CreatedAtRoute("DefaultApi", new { id = dOC_CEDULA.FECHA_SELLO }, dOC_CEDULA);
                    fechaCarga = (urlFechaS.Content.FECHA_SELLO).ToString();
                    var urlFirmante = CreatedAtRoute("DefaultApi", new { id = dOC_CEDULA.ID_FIRMANTE }, dOC_CEDULA);
                    idFirmante = (byte)urlFirmante.Content.ID_FIRMANTE;
                    var urlTipoCedula = CreatedAtRoute("DefaultApi", new { id = dOC_CEDULA.TIPO_CEDULA }, dOC_CEDULA);
                    tipoCedula = urlFirmante.Content.TIPO_CEDULA;
                }
                catch (Exception ex)
                {
                    return(BadRequest("ERROR: Al grabar cedula"));
                }

                //////PROSESO DE SELLADO
                string idCed          = rolUsuario.numeroCedula(idCedula);
                string idCedE         = tipoCedula + "-" + idCed;
                string cadenaOriginal = sellado.cadenaOriginal(docCedula, idCedE, cedulaF, fechaCarga, idFirmante);
                string sello          = sellado.crearSello(cadenaOriginal, idFirmante);
                string selloSubstring = sello.Substring(0, 5);
                if (selloSubstring == "Error")
                {
                    return(BadRequest(sello));
                }
                /////CREACION DE HASH
                string hashQr = sellado.stringSha265(idCedE);
                /////COMPLETAN LOS CAMPOS FALTANTES DE DOC_CEDULA
                var cedula = db.DOC_CEDULA.Where(c => c.ID_CEDULA == idCedula).FirstOrDefault();
                cedula.SELLO           = sello;
                cedula.HASH_QR         = hashQr;
                db.Entry(cedula).State = EntityState.Modified;
                try
                {
                    db.SaveChanges();
                }
                catch (DbUpdateConcurrencyException ex)
                {
                    return(BadRequest("ERROR: Al actualizar sello " + ex.ToString()));
                }

                /////ALMACENA XML
                XML xML = (new XML()
                {
                    ID_CEDULA = idCedula,
                    XML1 = docCedula.XML,
                });
                db.XML.Add(xML);
                try
                {
                    db.SaveChanges();
                }
                catch (Exception ex) { BadRequest("ERROR: Al grabar xml " + ex.ToString()); }

                //////ALMACENAMOS EN BITACORA
                BITACORA bITACORA = (new BITACORA()
                {
                    ID_CEDULA = idCedula,
                    FECHA = DateTime.Now,
                    TIPO_MOVIMIENTO = 1,
                    ID_USUARIO = id_usuario,
                });
                db.BITACORA.Add(bITACORA);
                try
                {
                    db.SaveChanges();
                }
                catch (Exception ex) { BadRequest("ERROR: Al grabar bitacora " + ex.ToString()); }

                //return CreatedAtRoute("DefaultApi", new { id = dOC_CEDULA.ID_CEDULA }, dOC_CEDULA);
                return(Ok("Cedula: " + idCedE + " creada"));
            }
            else
            {
                return(BadRequest("El Correo Electrónico // o Id de usuario // o Perfil Es incorrecto... "));
            }
        }