private void BtnAssinarPDF_Click(object sender, EventArgs e) { try { if (CboCertificados.Items.Count == 0 || CboCertificados.SelectedIndex == -1) { MessageBox.Show("Por favor, selecione um certificado válido.", ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error); BtnAtualizar_Click(sender, e); CboCertificados.Focus(); } else { CertSimples oCert = (CertSimples)CboCertificados.SelectedItem; if (OptChancela.Checked) { string CPF = oCert.CPF;//CboCertificados.Text.Substring(CboCertificados.Text.IndexOf("CPF:", 0) + 4).Trim(); if (ValidaUsuario.PermiteChancelaJuridica(CPF) == false) { MessageBox.Show("O selo de chancela da jurídica só é permitido para usuários autorizados.", ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error); return; } } openFileDialog1.Filter = "Arquivos pdf (*.pdf)|*.pdf"; openFileDialog1.FileName = ""; if (openFileDialog1.ShowDialog() != DialogResult.Cancel) { string ArquivoAssinado; try { AssinarArquivo(openFileDialog1.FileName, out ArquivoAssinado, false, oCert); } catch (Exception ex) { MessageBox.Show("Um erro aconteceu ao executar o processo de assinatura verifique se o certificado está corretamente instalado e, em caso de Token, na porta USB. Erro: " + ex.Message, ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error); } } AtualizaSettings(); } } catch (Exception ex) { MessageBox.Show("Um erro aconteceu ao executar o processo de assinatura. Erro: " + ex.Message, ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private void timer1_Tick(object sender, EventArgs e) { eTipoMensagem TipoMensagem; bool RecebeuMensagem = false; timer1.Enabled = false; string Mensagem = ""; //MENSAGEM VIA WEBSOCKET if (oWS.MensagemNova) { Mensagem = oWS.Mensagem; oWS.MensagemNova = false; oWS.Mensagem = ""; TipoMensagem = eTipoMensagem.WebSocket; RecebeuMensagem = true; } //MENSAGEM VIA SOCKET if (INB.Assinador.Integracao.Service.SocketWS.MensagemNova) { Mensagem = INB.Assinador.Integracao.Service.SocketWS.Mensagem; INB.Assinador.Integracao.Service.SocketWS.MensagemNova = false; INB.Assinador.Integracao.Service.SocketWS.Mensagem = ""; TipoMensagem = eTipoMensagem.WebSocket; RecebeuMensagem = true; } if (RecebeuMensagem) { Comunicacao oCom = null; //CONVERTE O TEXTO RECEBIDO EM OBJETO try { if (Ignorar(Mensagem)) { timer1.Enabled = true; return; } else { this.Visible = true; this.Focus(); this.WindowState = FormWindowState.Normal; this.BringToFront(); oCom = (Comunicacao)ConverterObjeto.RetornaObjeto(Mensagem); } } catch (Exception ex) { MessageBox.Show("Um erro ocorreu ao converter o objeto para o tipo Comunicacao. O processo precisa ser repetido e se o erro persistir, notifique o Help-Desk | Mensagem REcebida: " + Mensagem + " | Erro: " + ex.Message, ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error); timer1.Enabled = true; return; } if (CboCertificados.Items.Count == 0 || CboCertificados.SelectedIndex == -1) { MessageBox.Show("Para a integração funcionar é necessário ter um certificado válido selecionado. Insira e selecione o certificado e repita o processo.", ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error); timer1.Enabled = true; CboCertificados.Focus(); return; } try { byte[] Arquivo; try { Arquivo = Service.WSFile.getFile(oCom); try { MemoryStream ArquivoMS; if (ChkSalvaArquivo.Checked) { ArquivoMS = new MemoryStream(Arquivo); string path = System.AppDomain.CurrentDomain.BaseDirectory + "Temp\\"; string pathArquivoRecebido = path + oCom.Codigo.ToString() + "_" + oCom.Versao.ToString() + ".pdf"; using (FileStream fs = new FileStream(pathArquivoRecebido, FileMode.OpenOrCreate)) { ArquivoMS.CopyTo(fs); fs.Flush(); } ArquivoMS.Close(); string FileNameAssinado; if (AssinarArquivo(pathArquivoRecebido, out FileNameAssinado, true)) { byte[] ArquivoAssinado = INB.Assinador.Helper.FileHelper.ReadFile(FileNameAssinado); try { Service.WSFile.setFile(oCom, ArquivoAssinado); MessageBox.Show("Arquivo assinado com sucesso.", ProductName, MessageBoxButtons.OK, MessageBoxIcon.Information); } catch (Exception ex) { MessageBox.Show("Ocorreu um erro na assinatura e o processo inteiro precisa ser refeito. Erro: " + ex.Message, ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error); } } try { System.IO.File.Delete(FileNameAssinado); System.IO.File.Delete(pathArquivoRecebido); } catch (Exception ex) { } } else { byte[] ArquivoAssinado; if (AssinarArquivo(Arquivo, out ArquivoAssinado, true)) { try { Service.WSFile.setFile(oCom, ArquivoAssinado); MessageBox.Show("Arquivo assinado com sucesso.", ProductName, MessageBoxButtons.OK, MessageBoxIcon.Information); } catch (Exception ex) { MessageBox.Show("Ocorreu um erro na assinatura e o processo inteiro precisa ser refeito. Erro: " + ex.Message, ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error); } } else { MessageBox.Show("Um problema ocorreu no envio do arquivo assinado para o servidor. Assinatura não realizada. Repita todo o processo, por favor.", ProductName, MessageBoxButtons.OK); } } } catch (Exception ex) { MessageBox.Show("Ocorreu um erro no Sistema. Erro:" + ex.Message + ".", ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error); } } catch (Exception ex) { MessageBox.Show("Ocorreu um erro ao acessar o WebService de leitura de arquivo do Sistema. Erro:" + ex.Message + ".", ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error); } } catch (Exception ex) { MessageBox.Show("Um erro ocorreu ao tentar buscar o arquivo no Servidor.Erro: " + ex.Message + ".", ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error); } } timer1.Enabled = true; }