예제 #1
0
        public void MetodoIncluir()
        {
            //Arrange
            var service         = new ContribuinteService(_mapper, _contribuinteRepository, _mediator);
            var contribuinteDTO = new ContribuinteDTO();

            //Act
            service.Incluir(contribuinteDTO);
        }
예제 #2
0
        public void SplitPdf(ArquivoDTO arquivoImportado, LoteDTO lote)
        {
            var    parametro = (lote.TipoContribuinte == TipoContribuinte.FuncionarioCassi ? Funcionarios : Prestadores);
            string caminho   = string.Format(@"{0}\{1}\{2}\{3}", CaminhoDiretorio, lote.AnoExercicio, Processados, parametro);

            using (var reader = new PdfReader(arquivoImportado.CaminhoArquivo))
            {
                int total = reader.NumberOfPages;

                for (int pagina = 1; pagina <= total; pagina++)
                {
                    var textoPag = PdfTextExtractor.GetTextFromPage(reader, pagina, new SimpleTextExtractionStrategy());

                    var cpfsCnpjs = IdentificarCpfCnpjPdf(textoPag);

                    if (cpfsCnpjs.Count() < 0)
                    {
                        continue;
                    }

                    ContribuinteDTO contribuinte = null;

                    foreach (var cpfCnpj in cpfsCnpjs)
                    {
                        contribuinte = lote.ContribuintesArquivoTxt.FirstOrDefault(c => c.CpfCnpj == cpfCnpj);
                        if (contribuinte != null)
                        {
                            break;
                        }
                    }

                    if (contribuinte != null)
                    {
                        //Contribuinte encontrado no txt e pdf!
                        contribuinte.Arquivo.CaminhoArquivo      = caminho;
                        contribuinte.Arquivo.CaminhoArquivoBanco = String.Format(@"\{0}\{1}\{2}", lote.AnoExercicio, Processados, parametro);

                        if (GerarArquivo(reader, contribuinte, pagina))
                        {
                            contribuinte.Status       = StatusContribuinte.Sucesso;
                            contribuinte.TipoSituacao = TipoSituacao.Processado;
                        }
                    }
                }
            }
        }
예제 #3
0
        private bool GerarArquivo(PdfReader reader, ContribuinteDTO contribuinte, int pagina)
        {
            var cpfCnpj = contribuinte.CpfCnpj.Replace(".", String.Empty).
                          Replace("-", String.Empty).Replace("/", String.Empty);

            contribuinte.Arquivo.NomeArquivo     = cpfCnpj;
            contribuinte.Arquivo.ExtensaoArquivo = ".pdf";

            var pathArquivo = String.Format(@"{0}\{1}_TASK{2}{3}", contribuinte.Arquivo.CaminhoArquivo, cpfCnpj, Task.CurrentId, ".pdf");

            if (File.Exists(pathArquivo))
            {
                int i = 1;
                pathArquivo = String.Format(@"{0}\{1}_TASK{2}_{3}{4}", contribuinte.Arquivo.CaminhoArquivo, cpfCnpj, Task.CurrentId, i, ".pdf");

                while (File.Exists(pathArquivo))
                {
                    i++;
                    pathArquivo = String.Format(@"{0}\{1}_TASK{2}_{3}{4}", contribuinte.Arquivo.CaminhoArquivo, cpfCnpj, Task.CurrentId, i, ".pdf");
                }
            }

            var document = new Document(reader.GetPageSizeWithRotation(pagina));

            var provider     = new PdfCopy(document, new FileStream(pathArquivo, FileMode.Create));
            var importedPage = provider.GetImportedPage(reader, pagina);

            document.Open();

            provider.AddPage(importedPage);

            document.Close();

            provider.Close();

            return(true);
        }
예제 #4
0
 public IActionResult Incluir([FromBody] ContribuinteDTO contribuinteDTO)
 {
     _contribuinteService.Incluir(contribuinteDTO);
     return(Response());
 }
예제 #5
0
        public void Incluir(ContribuinteDTO contribuinteDTO)
        {
            var command = _mapper.Map <IncluirContribuinteCommand>(contribuinteDTO);

            _mediator.Send(command);
        }