public async Task <IActionResult> Atualizar(AtualizarNormaRequestDTO atualizarNormaDTO)
        {
            try
            {
                var localArquivoNormas = string.Empty;
                var norma = _normaRepository.GetById(atualizarNormaDTO.Id);

                if (norma == null)
                {
                    return(new NotFoundObjectResult("Norma não localizada."));
                }

                var normaUpdate = _mapper.Map <Norma>(atualizarNormaDTO);
                normaUpdate.Externa = norma.Externa;

                if (norma.Externa == "N" && normaUpdate.LocalArquivoNormas != null)
                {
                    _normaService.ExcluiArquivoNorma(norma.LocalArquivoNormas);
                    localArquivoNormas = await _normaService.GravarArquivoNormaAsync(atualizarNormaDTO.ArquivoNorma);

                    normaUpdate.LocalArquivoNormas = localArquivoNormas;
                }
                else
                {
                    normaUpdate.LocalArquivoNormas = norma.LocalArquivoNormas;
                }

                if (norma.Externa == "S")
                {
                    normaUpdate.CodigoNorma    = norma.CodigoNorma;
                    normaUpdate.DataPublicacao = norma.DataPublicacao;
                }

                _normaRepository.Update(normaUpdate);

                var normaResponse = _mapper.Map <AtualizarNormaResponseDTO>(_normaRepository.GetById(atualizarNormaDTO.Id));

                if (norma.Externa == "N")
                {
                    normaResponse.LocalArquivoNormas = _normaService.RetornaLinkArquivoNorma(normaResponse.LocalArquivoNormas);
                }

                return(new OkObjectResult(normaResponse));
            }
            catch (Exception ex)
            {
                return(new BadRequestObjectResult(ex.Message));
            }
        }
        public async Task <IActionResult> Buscar(int idNorma)
        {
            try
            {
                var norma = _normaRepository.GetById(idNorma);

                if (norma == null)
                {
                    return(new NotFoundObjectResult("Norma não localizada."));
                }

                var arquivoNorma = _normaService.RetornaStreamArquivo(norma.LocalArquivoNormas);

                if (arquivoNorma == null)
                {
                    return(new NotFoundObjectResult("Arquivo de normas não localizado"));
                }

                return(File(arquivoNorma, "application/octet-stream"));
            }
            catch (Exception ex)
            {
                return(new BadRequestObjectResult(ex.Message));
            }
        }
Esempio n. 3
0
        public async Task <IActionResult> Buscar(int idNorma)
        {
            try
            {
                var norma = _normaRepository.GetById(idNorma);

                if (norma == null)
                {
                    return(new NotFoundObjectResult("Norma não localizada."));
                }

                var normaResponse = _mapper.Map <BuscarNormaResponseDTO>(norma);

                normaResponse.LocalArquivoNormas = normaResponse.Externa == "N" ?
                                                   _normaService.RetornaLinkArquivoNorma(normaResponse.LocalArquivoNormas) : normaResponse.LocalArquivoNormas;

                return(new OkObjectResult(normaResponse));
            }
            catch (Exception ex)
            {
                return(new BadRequestObjectResult(ex.Message));
            }
        }