private bool AssinaN3First(GEDDocumentosNivel2 item) { string caminhoDocOriginal = ""; string caminhoDocAssinadoN1 = ""; try { if (item.DOC_IDUSUARIOASSINANIVEL2 != null || item.DOC_IDUSUARIOASSINANIVEL3 != null) { return(CoAssinarN3(item)); } else { ACSLog.InsertLog(MessageBoxIcon.Error, "----------------------------------- Entrou para assinar ----------------------------------- "); caminhoDocOriginal = GetPathOutput() + "\\" + item.PAS_REGISTRO + "\\" + item.PAS_REGISTRO + item.DOC_DIVISAO + "\\" + item.PAS_CODIGOPASSAGEM + "\\" + item.DOC_NOMEARQUIVO + ".jpeg"; // caminhoDocAssinadoN1 = GetPathOutput() + "\\" + item.PAS_REGISTRO + "\\" + item.PAS_REGISTRO + item.DOC_DIVISAO + "\\" + item.PAS_CODIGOPASSAGEM + "\\" + item.DOC_NOMEARQUIVO + "_N1.p7s"; ACSLog.InsertLog(MessageBoxIcon.Error, "Montou um caminho: " + caminhoDocOriginal); var sCertificado = ACSGlobal.UsuarioLogado.USR_SERIALNUMBERCERT; byte[] assinatura = Assinador.assinar(Assinador.ConvertDocToStream(caminhoDocOriginal), sCertificado); string pathNew = Path.GetDirectoryName(caminhoDocOriginal) + "\\" + Path.GetFileNameWithoutExtension(caminhoDocOriginal); System.IO.FileStream _FileStream = new System.IO.FileStream(pathNew + "_N3.p7s", System.IO.FileMode.Create, System.IO.FileAccess.Write); ACSLog.InsertLog(MessageBoxIcon.Error, "Geraou o caminho para o _N3.p7s: " + pathNew); _FileStream.Write(assinatura, 0, assinatura.Length); // close file stream _FileStream.Close(); ACSDataBase.UpdateDocumentoAssinadoN3((decimal)ACSGlobal.UsuarioLogado.USR_IDUSUARIO, (decimal)item.DOC_IDDOCUMENTO, getInfoCertificado(sCertificado, "3")); ACSLog.InsertLog(MessageBoxIcon.Error, "Salvou a alteração na base de dados"); ACSLog.InsertLog(MessageBoxIcon.Error, "----------------------------------- Finalizou assinar ----------------------------------- "); return(true); } } catch (Exception ex) { ACSLog.InsertLog(MessageBoxIcon.Error, "Erro ao assinar o documento: " + caminhoDocOriginal); ACSLog.InsertLog(MessageBoxIcon.Error, "Não foi possível assinar o documento. Motivo: " + ex.InnerException); ACSLog.InsertLog(MessageBoxIcon.Error, "Não foi possível assinar o documento. Motivo w: " + ex.Message); ACSLog.InsertLog(MessageBoxIcon.Error, "Não foi possível assinar o documento. Motivo e: " + ex.InnerException); throw new ExceptionCustom("Não foi possível assinar o documento. Motivo e: " + ex.InnerException); throw new ExceptionCustom("Não foi possível assinar o documento. Motivo w: " + ex.Message); return(false); } }