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); }
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... ")); } }