예제 #1
0
        public async Task <IActionResult> AtualizarDados(string DadosAluno, bool Estagiando, int IdArea)
        {
            try
            {
                unitOfWork = unitOfWork ?? new UnitOfWork(context);
                ServicoRequisito _servicoRequisito = new ServicoRequisito(ref unitOfWork);
                _servicoRequisitoUsuario = new ServicoRequisitoUsuario(ref unitOfWork);
                List <DadosAlunoKV> dadosAluno = JsonConvert.DeserializeObject <List <DadosAlunoKV> >(DadosAluno);
                foreach (DadosAlunoKV dado in dadosAluno)
                {
                    string id = dado.Name.Split(':')[1];
                    dado.Requisito = await _servicoRequisito.BuscarUm(x => x.Bookmark == id);
                }
                UsuarioADE usuario = await ObterUsuarioLogado();

                if (usuario.Id != "N/A")
                {
                    await _servicoRequisitoUsuario.AdicionarRequisitosDeUsuarioAsync(dadosAluno, usuario);

                    if (IdArea != 0)
                    {
                        await CadastrarAreaEstagioAluno(usuario, IdArea);
                    }
                    usuario.Estagiando = Estagiando;
                    await AtualizarUsuario(usuario);
                }
                return(PartialView("_FormularioRequisitosBasicos"));
            }
            catch (Exception ex)
            {
                await LogError(ex.Message, ex.Source, EnumTipoLog.AlteracaoRequisitoDeUsuario);

                return(Json("{\"Erro\": \"Erro ao atualizar informações\"}"));
            }
        }
예제 #2
0
        private async Task CadastrarAreaEstagioAluno(UsuarioADE usuario, int idArea)
        {
            ServicoAreaEstagioCurso _servicoAreaEstagio = new ServicoAreaEstagioCurso(ref unitOfWork);

            _servicoRequisitoUsuario = new ServicoRequisitoUsuario(ref unitOfWork);
            _servicoRequisito        = new ServicoRequisito(ref unitOfWork);
            Requisito req = await _servicoRequisito.BuscarUm(x => x.Bookmark == "_AreasEstagio_");

            AreaEstagioCurso area = await _servicoAreaEstagio.BuscarUm(x => x.Identificador == idArea);

            RequisitoDeUsuario requisitoDeUsuario = new RequisitoDeUsuario();

            requisitoDeUsuario.IdRequisito = req.Identificador;
            requisitoDeUsuario.UserId      = usuario.Id;
            requisitoDeUsuario.Valor       = area.Nome;
            await _servicoRequisitoUsuario.CadastrarAsync(requisitoDeUsuario);
        }
예제 #3
0
        public async Task <IActionResult> CriarOpcoesRequisito(string nome, string valor)
        {
            UsuarioADE usuario = await ObterUsuarioLogado();

            try
            {
                Requisito requisito = await _requisitoServices.BuscarUm(usuario, x => x.Bookmark == nome);

                OpcaoRequisito opcao = new OpcaoRequisito(requisito.Identificador, valor);
                await _servicoOpcaoRequisito.CadastrarAsync(usuario, opcao);

                return(Json($"{{Status:\"Opção de Requisito '{valor}' criada\"}}"));
            }
            catch (Exception)
            {
                return(Json($"{{Status:\"Falha ao criar opção de requisito {valor} para o requisito {nome}, (tente criar uma opção por vez)\"}}"));
            }
        }
예제 #4
0
        public async Task <IActionResult> DownloadDocumento([FromQuery] DocumentoRequest documentoRequest)
        {
            Documento Documento = await _documentoServices.BuscarPorId(documentoRequest.idDocumento);

            Documento.IdCursoNavigation = await _cursoServices.BuscarPorId(Documento.IdCurso);

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

            UsuarioADE Usuario = await ObterUsuarioLogado();

            int TentativasDownload = 3;

            while (TentativasDownload > 0)
            {
                try
                {
                    if (Enum.TryParse(documentoRequest.MimeType, out EnumFormatoDocumento formatoDocumento))
                    {
                        List <DadosAlunoKV> dadosAlunoKV = JsonConvert.DeserializeObject <List <DadosAlunoKV> >(documentoRequest.dadosAluno);
                        foreach (DadosAlunoKV dado in dadosAlunoKV)
                        {
                            int id = Convert.ToInt32(dado.Name.Split(':')[0]);
                            dado.Requisito = await _servicoRequisito.BuscarUm(x => x.Identificador == id);
                        }
                        ArquivoDownload Arquivo;
                        if (Documento.Tipo != EnumTipoDocumento.Questionario)
                        {
                            Arquivo = await _documentoServices.GerarDownloadDocumento(dadosAlunoKV, Documento, Usuario, formatoDocumento);
                        }
                        else
                        {
                            RequisitosBasicosCabecalho requisitosBasicos = await ObterRequisitosBasicosUsuario(Usuario);

                            Arquivo = await _documentoServices.GerarDownloadQuestionario(dadosAlunoKV, Documento, Usuario, requisitosBasicos, formatoDocumento);
                        }
                        if (TentativasDownload == 3)
                        {
                            await _atividadeEstagioServices.VerificarTarefasEConcluir(Usuario, EnumEntidadesSistema.Documento, documentoRequest.idDocumento, EnumTipoAtividadeEstagio.DownloadOuImpressao, 1);
                        }

                        string handle = Guid.NewGuid().ToString();
                        TempData[handle] = Arquivo.Bytes.ToArray();
                        string data = JsonConvert.SerializeObject(new { FileGuid = handle, FileName = $"{Documento.TituloDocumento}.{documentoRequest.MimeType}" });
                        return(Json(data));
                    }
                    else
                    {
                        ModelState.AddModelError("Falha", "Formato inválido para documento");
                        return(Json("{\"Erro\": \"Formato inválido para documento\"}"));
                    }
                }
                catch (Exception ex) when(TentativasDownload > 0)
                {
                    TentativasDownload -= 1;
                    System.Threading.Thread.Sleep(3000);
                    await LogError($"{ex.Message}", "ListagemDocumento", EnumTipoLog.ImpressaoArquivo);
                }
            }
            ViewBag.Retorno = "Recurso indisponivel no momento, tente novamente em alguns instantes.";
            ModelState.AddModelError("Falha", ViewBag.Retorno);
            return(await VisualizacaoDocumentosCurso(Documento.IdCurso, "Recurso indisponivel no momento, tente novamente em alguns instantes.", 1));
        }
예제 #5
0
        public async Task <IActionResult> RegistroTemporario(int IdFaculdade, int IdCurso, string DadosAluno, bool Estagiando, int IdArea)
        {
            try
            {
                Instituicao instituicao = await _servicoInstituicao.BuscarUm(x => x.Identificador == IdFaculdade);

                Curso curso = await _servicoCurso.BuscarUm(x => x.Identificador == IdCurso);

                List <DadosAlunoKV> dadosAluno = JsonConvert.DeserializeObject <List <DadosAlunoKV> >(DadosAluno);
                foreach (DadosAlunoKV dado in dadosAluno)
                {
                    string id = dado.Name.Split(':')[1];
                    dado.Requisito = await _servicoRequisito.BuscarUm(x => x.Bookmark == id);
                }
                UsuarioADE usuario = await ObterUsuarioLogado();

                usuario.Estagiando = Estagiando;
                if (usuario.Id != "N/A")
                {
                    usuario.IdCurso       = curso.Identificador;
                    usuario.IdInstituicao = instituicao.Identificador;
                    await _servicoRequisitosDeUsuario.AdicionarRequisitosDeUsuarioAsync(dadosAluno, usuario);
                    await CadastrarAreaEstagioAluno(usuario, IdArea);
                    await AtualizarUsuario(usuario);

                    return(RedirectToAction("Index", "UserHome", new { area = "Principal" }));
                }
                else
                {
                    string ContagemUsuarios = (await ContarUsuarios()).ToString().PadLeft(2, '0');
                    string NomeTemporario   = $"UsuarioTemporario{instituicao.Nome}{ContagemUsuarios}";
                    string EmailTemporario  = $"usuario{ContagemUsuarios}@assistentedeestagio.com.br";

                    var NovoUsuario = new UsuarioADE
                    {
                        UserName      = NomeTemporario,
                        Email         = EmailTemporario,
                        PasswordHash  = DateTime.Now.Ticks.ToString(),
                        IdCurso       = curso.Identificador,
                        IdInstituicao = instituicao.Identificador,
                        Estagiando    = Estagiando,
                        Logo          = IconPadrao(_hostingEnvironment)
                    };

                    var result = await RegistrarUsuario(NovoUsuario);

                    if (result.Succeeded)
                    {
                        await LogarUsuario(NovoUsuario, EmailTemporario);

                        await _servicoRequisitosDeUsuario.AdicionarRequisitosDeUsuarioAsync(dadosAluno, NovoUsuario);
                        await CadastrarAreaEstagioAluno(usuario, IdArea);
                        await ManterLogDeRegistro(NovoUsuario);

                        return(RedirectToAction("Index", "UserHome", new { area = "Principal" }));
                    }
                    else
                    {
                        foreach (var error in result.Errors)
                        {
                            ModelState.AddModelError(string.Empty, error.Description);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                await LogError(ex.Message, ex.Source, EnumTipoLog.RegistroDeUsuario);
            }
            return(View("Login", await ParseLoginView()));
        }