Example #1
0
        public async Task <EventoCompletoDto> ObterPorId(long id)
        {
            var evento = await repositorioEvento.ObterPorIdAsync(id);

            evento.TipoEvento = await repositorioEventoTipo.ObterPorIdAsync(evento.TipoEventoId);

            var usuario = await servicoUsuario.ObterUsuarioLogado();

            //verificar se o evento e o perfil do usuário é SME para possibilitar alteração
            bool podeAlterar = !EhEventoSME(evento) || (EhEventoSME(evento) && usuario.EhPerfilSME());

            if (!EhEventoSME(evento) &&
                (evento.TipoEventoId == (long)TipoEvento.LiberacaoExcepcional ||
                 evento.TipoEventoId == (long)TipoEvento.ReposicaoNoRecesso))
            {
                podeAlterar = usuario.TemPerfilGestaoUes();
            }

            return(MapearParaDto(evento, podeAlterar));
        }