public static int EnviarNotaFiscal(out NotaFiscal notaFiscal, out ConfiguracaoEntity config, Destinatario destinatario = null)
        {
            notaFiscal = null;
            config     = ConfiguracaoService.GetConfiguracao();
            var ambiente    = Ambiente.Homologacao;
            var modeloNota  = Modelo.Modelo65;
            var tipoEmissao = TipoEmissao.Normal;

            var documentoDanfe = destinatario != null ? destinatario.DocumentoDanfe : "CPF"; //Encapsular isso aqui

            var emitente = EmissorService.GetEmissor();
            var codigoUF = (CodigoUfIbge)Enum.Parse(typeof(CodigoUfIbge), emitente.Endereco.UF);
            var serie    = config.SerieNFCeHom;
            var numero   = config.ProximoNumNFCeHom;

            var identificacao = GetIdentificacao(codigoUF, DateTime.Now, emitente, modeloNota, Convert.ToInt32(serie), numero, tipoEmissao, ambiente, documentoDanfe);
            var produtos      = GetProdutos(config);
            var totalNFe      = GetTotalNFe();
            var pagamentos    = GetPagamentos();
            var infoAdicional = new InfoAdicional(produtos);
            var transporte    = new Transporte(modeloNota, null, null);

            notaFiscal = new NFe.Core.TO.NotaFiscal(emitente, destinatario, identificacao, transporte, totalNFe, infoAdicional, produtos, pagamentos);

            string            cscId       = config.CscIdHom;
            string            csc         = config.CscHom;
            NotaFiscalService notaService = new NotaFiscalService();

            return(notaService.EnviarNotaFiscalAsync(notaFiscal, cscId, csc).Result);
        }
 public static async void SalvarNotaFiscal(NFe.Core.TO.NotaFiscal notaFiscal, RetornoNotaFiscal mensagemRetorno, Ambiente ambiente, int idNota)
 {
     await new NotaFiscalService().SalvarNotaFiscalAsync(notaFiscal, mensagemRetorno, ambiente, idNota);
 }