private async Task <ComparacaoRequisitos> CompararRequisitosNoDocumentoComBancoDeDados(Stream documento)
        {
            List <Requisito> Lista = new List <Requisito>();

            try
            {
                Lista = await _servicoRequisito.ListarAsync();
            }
            catch (Exception)
            {
            }

            ComparacaoRequisitos Comparacao = new ComparacaoRequisitos
            {
                RequisitosExistentes = Lista,
                RequisitosNovos      = ObterBookmarksDocumento(documento)
            };

            if (Comparacao.IsValidForComparison())
            {
                Comparacao.ObterComparacaoRequisitosCompativeis();
                Comparacao.DiferencaNovosEExistentes();
            }

            return(Comparacao);
        }
        private async Task CadastrarRequisitosCompativeis(UsuarioADE usuario, ComparacaoRequisitos comparacao, Documento documento)
        {
            try
            {
                foreach (Requisito req in comparacao.RequisitosCompativeis)
                {
                    RequisitoDeDocumento rdd = new RequisitoDeDocumento();
                    RequisitoDeDocumento Verificacao;
                    rdd.Identificador = await RecuperarCodigoHistoricoGeracaoDocumento();

                    rdd.IdRequisito = req.Identificador;
                    rdd.IdDocumento = documento.Identificador;
                    try
                    {
                        Verificacao = await _servicoRequisitoDeDocumento.BuscarPorId(documento.Identificador, req.Identificador);
                    }
                    catch (Exception)
                    {
                        continue;
                    }
                    if (Verificacao.IdDocumento == 0)
                    {
                        await _servicoRequisitoDeDocumento.CadastrarAsync(usuario, rdd);
                    }
                }
                await unitOfWork.Commit();
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
示例#3
0
        private async Task <string> CreateDocumentFileStreamFromIFormFileAndChecarRequisitos(IFormFile Documento)
        {
            using (Stream fileStream = new MemoryStream())
            {
                await Documento.CopyToAsync(fileStream);

                ComparacaoRequisitos comparacao = await _documentoServices.ChecarRequisitosDocumento(fileStream);

                string texto     = _documentoServices.ObterTextoDocumento(fileStream);
                string textoHTML = _documentoServices.ObterTextoDocumentoHTML(fileStream);
                RetornoUploadDocumento retornoUpload = new RetornoUploadDocumento(texto, textoHTML, comparacao);
                return(JsonConvert.SerializeObject(retornoUpload));
            }
        }
        private async Task <ComparacaoRequisitos> CompararRequisitosNoDocumentoComBancoDeDados(string CaminhoDocumento)
        {
            ComparacaoRequisitos Comparacao = new ComparacaoRequisitos
            {
                RequisitosExistentes = await _servicoRequisito.ListarAsync(),
                RequisitosNovos      = ObterBookmarksDocumento(CaminhoDocumento)
            };

            if (Comparacao.IsValidForComparison())
            {
                Comparacao.ObterComparacaoRequisitosCompativeis();
                Comparacao.DiferencaNovosEExistentes();
            }

            return(Comparacao);
        }
        private async Task AdicionarRequisitosDeDocumento(UsuarioADE usuario, IFormFile Arquivo, Documento documento)
        {
            try
            {
                Documento Documento = await BuscarPorId(documento.Identificador);

                using (Stream ms = new MemoryStream()) {
                    Arquivo.CopyToAsync(ms);
                    ms.Position = 0;
                    ms.Seek(0, SeekOrigin.Begin);
                    ComparacaoRequisitos Comparacao = await CompararRequisitosNoDocumentoComBancoDeDados(ms);
                    await CadastrarRequisitosCompativeis(usuario, Comparacao, Documento);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public async Task <ComparacaoRequisitos> ChecarRequisitosDocumento(string CaminhoDocumento)
        {
            ComparacaoRequisitos Comparacao = await CompararRequisitosNoDocumentoComBancoDeDados(CaminhoDocumento);

            return(Comparacao);
        }
        public async Task <ComparacaoRequisitos> ChecarRequisitosDocumento(Stream documento)
        {
            ComparacaoRequisitos Comparacao = await CompararRequisitosNoDocumentoComBancoDeDados(documento);

            return(Comparacao);
        }