Пример #1
0
        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);
            }
        }