public async Task <IActionResult> TrocarCurso(int idCurso)
        {
            try
            {
                _cursoServices = new ServicoCurso(ref unitOfWork);
                Curso curso = await _cursoServices.BuscarPorId(idCurso);

                UsuarioADE usuario = await ObterUsuarioLogado();

                usuario.Email    = User.Identity.Name;
                usuario.Id       = usuario.Id;
                usuario.UserName = usuario.UserName;
                usuario.IdCurso  = curso.Identificador;
                if (usuario.IdInstituicao == curso.IdInstituicao)
                {
                    await AtualizarUsuario(usuario);

                    return(RedirectToAction("RedirecionarNovoCurso", "Instituicao", new { Area = "Principal", idCurso, idUsuario = usuario.Id }));
                }
                else
                {
                    ModelState.AddModelError("Falha", "Usuário não está cadastrado nesta instituição");
                    ViewBag.Retorno = "Usuário não está cadastrado nesta instituição";
                    return(RedirectToAction("ListagemCursos", "Instituicao", new { area = "Principal", pageNumber = 1, idInstituicao = curso.IdInstituicao, ErrorMessage = ViewBag.Retorno }));
                }
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("Falha", "Ocorreu um erro alterar o curso do usuário");
                await LogError(ex.Message, ex.Source, Dominio.Models.Enums.EnumTipoLog.AlteracaoCursoUsuario);

                return(RedirectToAction("Index", "Account"));
            }
        }
예제 #2
0
        public async Task <IActionResult> Index()
        {
            try
            {
                if (UsuarioValido())
                {
                    UsuarioADE usuario = await ObterUsuarioLogado();

                    RegulamentacaoCurso regulamentacao = await servicoRegulamentacaoCurso.RecuperarRegulamentacao(usuario.IdCurso);

                    regulamentacao.IdCursoNavigation = await servicoCurso.BuscarPorId(usuario.IdCurso);

                    regulamentacao.IdCursoNavigation.Instituicao = await servicoInstituicao.BuscarPorId(regulamentacao.IdCursoNavigation.IdInstituicao);

                    return(View(regulamentacao));
                }
                else
                {
                    ModelState.AddModelError("Falha", "Usuário não está autenticado");
                    return(RedirectToAction("Logout", "Account"));
                }
            }
            catch (Exception ex)
            {
                await LogError(ex.Message, ex.Source, Dominio.Models.Enums.EnumTipoLog.ErroInterno);

                return(RedirectToAction("Index", "Account"));
            }
        }
        public async Task <IActionResult> Exportar()
        {
            UsuarioADE usuario = await ObterUsuarioLogado();

            try
            {
                Documento tabela = new Documento();
                tabela.IdCursoNavigation = await _cursoServices.BuscarPorId(usuario.IdCurso);

                tabela.IdCursoNavigation.Instituicao = await _servicoInstituicao.BuscarPorId(tabela.IdCursoNavigation.IdInstituicao);

                RequisitosBasicosCabecalho requisitosFicha = await ObterRequisitosBasicosUsuario(usuario);

                ArquivoDownload Arquivo = await servicoRegistroDeHoras.GerarTabelaHistorico(usuario, tabela, requisitosFicha);

                //await _atividadeEstagioServices.VerificarTarefasEConcluir(usuario, EnumEntidadesSistema., tabela.Identificador, EnumTipoAtividadeEstagio.DownloadOuImpressao, 1);
                return(File(Arquivo.Bytes, Arquivo.TipoArquivo, $"Tabela de Registro de Horas - {usuario.ToString()}.docx"));
            }
            catch (Exception ex)
            {
                System.Threading.Thread.Sleep(3000);
                await LogError($"{ex.Message}", "RegistroHoras", EnumTipoLog.ImpressaoArquivo);
            }
            ViewBag.Retorno = "É necessário ao menos um registro para realizar a exportação do histórico.";
            ModelState.AddModelError("Falha", ViewBag.Retorno);
            return(View("Index"));
        }
예제 #4
0
        public async Task <IActionResult> RedirecionarNovoCurso(int idCurso, string idUsuario)
        {
            try
            {
                UsuarioADE usuario = await ObterUsuarioPorEmailOuId(idUsuario);

                Curso curso = await _cursoServices.BuscarPorId(idCurso);

                ViewBag.Retorno = $"Curso alterado para {curso.Nome()}";
                return(RedirectToAction("VisualizacaoDocumentosCurso", "ListagemDocumentos", new { area = "Principal", Mensagem = ViewBag.Retorno }));
            }
            catch (Exception ex)
            {
                await LogError(ex.Message, ex.Source, EnumTipoLog.ErroInterno);

                return(RedirectToAction("Index", "Account"));
            }
        }
        public async Task <IActionResult> ExcluirCursoConfirmed(int id)
        {
            try
            {
                UsuarioADE usuario = await ObterUsuarioLogado();

                var curso = await _servicoCurso.BuscarPorId(id);

                await _servicoCurso.RemoverAsync(usuario, curso);
            }
            catch (Exception ex)
            {
                await LogError(ex.Message, ex.Source + "-" + ex.TargetSite.Name, EnumTipoLog.DelecaoCurso);

                ModelState.AddModelError("Falha", "Ocorreu um erro ao excluir o curso, contate o suporte para maior exclarecimento");
            }
            return(RedirectToAction(nameof(Index)));
        }
예제 #6
0
        private new async Task <UsuarioADE> ObterUsuarioComDadosPessoais(UsuarioADE usuario)
        {
            _servicoCurso = new ServicoCurso(ref unitOfWork);
            _servicoHistoricoGeracaoDocumento = new ServicoHistoricoGeracaoDocumento(ref unitOfWork);

            List <HistoricoGeracaoDocumento> ListaHistoricoGeracao = await _servicoHistoricoGeracaoDocumento.RecuperarHistoricoDoUsuario(usuario.Id);

            Curso curso = await _servicoCurso.BuscarPorId(usuario.IdCurso);

            usuario.IdCursoNavigation         = curso;
            usuario.HistoricoGeracaoDocumento = ListaHistoricoGeracao;
            return(usuario);
        }
예제 #7
0
        private async Task <AcaoUsuarioViewModel> ParseAcaoUsuario(string EmailOrId = null)
        {
            UsuarioADE usuario = EmailOrId == null ? await ObterUsuarioLogado() : await ObterUsuarioPorEmailOuId(EmailOrId);

            AcaoUsuarioViewModel model = new AcaoUsuarioViewModel()
            {
                LogAcaoUsuario = await ObterPaginaLogAcaoUsuario(1, EmailOrId),
                Usuario        = usuario,
                CursoUsuario   = await _servicoCurso.BuscarPorId(usuario.IdCurso),
                QuantidadeDocumentosGerados = await _servicoHistoricoGeracaoDocumento.CountByFilter(x => x.IdUsuario == EmailOrId || x.IdUsuarioNavigation.Email == EmailOrId),
                AutorizacaoUsuario          = await ObterAutorizacaoUsuario(usuario)
            };

            return(model);
        }
예제 #8
0
        private async Task <List <HistoricoGeracaoDocumento> > ObterHistoricoGeracaoComCurso(List <HistoricoGeracaoDocumento> historicos)
        {
            _servicoDocumento = new ServicoDocumento(ref unitOfWork, env);
            _servicoCurso     = new ServicoCurso(ref unitOfWork);
            foreach (HistoricoGeracaoDocumento historico in historicos)
            {
                Documento documento = await _servicoDocumento.BuscarPorId(historico.Documento);

                Curso Curso = await _servicoCurso.BuscarPorId(documento.IdCurso);

                historico.IdDocumentoNavigation = documento;
                historico.IdDocumentoNavigation.IdCursoNavigation = Curso;
            }
            return(historicos);
        }