/// <summary> /// Solicita a assinatura dos arquivos selecionados /// </summary> /// <param name="sender">Objeto que disparou esse evento</param> /// <param name="e">Contém os argumentos fornecidos nesse evento</param> protected void BtnSolicitarAssinatura_Click(object sender, EventArgs e) { AssinaturaSped assinatura; List <int> arquivosRejeitados; List <int> arquivosSelecionados = (List <int>) this.ObtemArquivosSelecionados(); this.DivMensagem.Visible = true; this.DivMensagem.Attributes["class"] = ConstantesGlobais.CLASSE_MENSAGEM_ERRO; if (arquivosSelecionados.Count <= 0) { this.LblMensagem.Text = MENSAGEM_ERRO_NENHUM_ARQUIVO_SELECIONADO; return; } if (!this.FuCertificadoDigital.HasFile || string.IsNullOrEmpty(this.TxtSenhaCertificadoDigital.Text)) { this.LblMensagem.Text = MENSAGEM_ERRO_CERTIFICADO_DIGITAL; return; } try { assinatura = new AssinaturaSped() { Speds = arquivosSelecionados, Certificado = GerenciamentoArquivo.ObtemChaveCertificadoDigital(this.FuCertificadoDigital.FileBytes), SenhaCertificado = this.TxtSenhaCertificadoDigital.Text }; arquivosRejeitados = (List <int>)GerenciamentoArquivo.AssinaSped(assinatura); if (arquivosRejeitados.Count <= 0) { this.DivMensagem.Attributes["class"] = ConstantesGlobais.CLASSE_MENSAGEM_SUCESSO; this.LblMensagem.Text = MENSAGEM_SUCESSO_ASSINATURA; } else { string arquivos = string.Empty; foreach (int arquivo in arquivosRejeitados) { arquivos += string.IsNullOrEmpty(arquivos) ? arquivo.ToString() : ", " + arquivo.ToString(); } this.LblMensagem.Text = string.Format(MENSAGEM_ERRO_ASSINATURA_ARQUIVO_REJEITADO, arquivos); } } catch (Exception ex) { Log.Info(ex.InnerException == null ? ex.Message : ex.InnerException.ToString()); this.LblMensagem.Text = MENSAGEM_ERRO_ASSINATURA; return; } }
/// <summary> /// Solicita a assinatura dos SPED's /// </summary> /// <param name="assinatura">Estrutura com as informações necessárias para solicitação de assinatura</param> /// <returns>Lista de arquivos rejeitados</returns> public static IList <int> AssinaSped(AssinaturaSped assinatura) { string json = AuxiliarJson.Posta(assinatura, EnderecosApi.Assina); return((List <int>)AuxiliarJson.Desserializa <List <int> >(json)); }