Ejemplo n.º 1
0
        public async Task <bool> Executar(FiltroRelatorioBoletimDto filtroRelatorioBoletimDto)
        {
            if (repositorioDre.ObterPorCodigo(filtroRelatorioBoletimDto.DreCodigo) == null)
            {
                throw new NegocioException("Não foi possível encontrar a DRE");
            }

            if (repositorioUe.ObterPorCodigo(filtroRelatorioBoletimDto.UeCodigo) == null)
            {
                throw new NegocioException("Não foi possível encontrar a UE");
            }

            if (!string.IsNullOrEmpty(filtroRelatorioBoletimDto.TurmaCodigo))
            {
                int codigoTurma;
                if (int.TryParse(filtroRelatorioBoletimDto.TurmaCodigo, out codigoTurma) && codigoTurma <= 0)
                {
                    filtroRelatorioBoletimDto.TurmaCodigo = String.Empty;
                }
                else if (await repositorioTurma.ObterPorCodigo(filtroRelatorioBoletimDto.TurmaCodigo) == null)
                {
                    throw new NegocioException("Não foi possível encontrar a turma");
                }
            }


            unitOfWork.IniciarTransacao();
            var usuarioLogado = await mediator.Send(new ObterUsuarioLogadoQuery());

            filtroRelatorioBoletimDto.Usuario = usuarioLogado;
            var retorno = await mediator.Send(new GerarRelatorioCommand(TipoRelatorio.Boletim, filtroRelatorioBoletimDto, usuarioLogado));

            unitOfWork.PersistirTransacao();
            return(retorno);
        }
Ejemplo n.º 2
0
 public async Task <IActionResult> Imprimir([FromBody] FiltroRelatorioBoletimDto filtroRelatorioBoletimDto, [FromServices] IBoletimUseCase boletimUseCase)
 {
     return(Ok(await boletimUseCase.Executar(filtroRelatorioBoletimDto)));
 }