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\"}")); } }
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); }
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)\"}}")); } }
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)); }
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())); }