public List <DTOMensagemGuia> ObterMensagensGuiaCambio(UsuarioTrilha matricula) { var retorno = new List <DTOMensagemGuia>(); // Primeiro câmbio. var mensagemPrimeiroCambio = VerificarPrimeiraTentativaCambio(matricula); if (mensagemPrimeiroCambio != null) { retorno.Add(mensagemPrimeiroCambio); } // Possuí o mínimo de moedas para prova final var mensagensPossuiMoedasProvaFinal = VerificarMoedasProvaFinal(matricula); if (mensagensPossuiMoedasProvaFinal != null) { retorno.Add(mensagensPossuiMoedasProvaFinal); } var mensagemEvolucaoPin = VerificarEvolucaoPin(matricula); if (mensagemEvolucaoPin != null) { retorno.Add(mensagemEvolucaoPin); } return(retorno); }
public List <DTOMensagemGuia> ObterMensagensGuiaMapa(UsuarioTrilha matricula) { var retorno = new List <DTOMensagemGuia>(); // Primeiro acesso ao mapa var mensagemPrimeiroAcesso = VerificarPrimeiroAcesso(matricula, enumMomento.PrimeiroAcessoMapa); if (mensagemPrimeiroAcesso != null) { retorno = mensagemPrimeiroAcesso; } // Possuí o mínimo de moedas para prova final var mensagensPossuiMoedasProvaFinal = VerificarMoedasProvaFinal(matricula); if (mensagensPossuiMoedasProvaFinal != null) { retorno.Add(mensagensPossuiMoedasProvaFinal); } var mensagemEvolucaoPin = VerificarEvolucaoPin(matricula); if (mensagemEvolucaoPin != null) { retorno.Add(mensagemEvolucaoPin); } return(retorno); }
private DTOMensagemGuia VerificarPrimeiraConclusaoMissao(UsuarioTrilha matricula, TrilhaNivel nivel) { // Refresh básico dos objetos. Foi mal, mas estamos com pressa. matricula = new ManterUsuarioTrilha().ObterPorId(matricula.ID); nivel = new ManterTrilhaNivel().ObterTrilhaNivelPorID(nivel.ID); var trilha = new ManterTrilha().ObterTrilhaPorId(matricula.TrilhaNivel.Trilha.ID); var momento = enumMomento.PrimeiraConclusaoMissao; if (matricula.ListaVisualizacoesMensagemGuia.All(x => x.MensagemGuia.ID != momento)) { var primeiraConclusao = nivel.ObterMissoes() .FirstOrDefault( m => m.UsuarioConcluiu(matricula) ); if (primeiraConclusao == null) { return(null); } var mensagem = new ManterMensagemGuia().ObterPorId(momento); var visualizacao = RegistrarVisualizacao(matricula, mensagem, missao: primeiraConclusao); return(new DTOMensagemGuia(visualizacao.ID, mensagem.ObterTexto(trilha, matricula, missao: primeiraConclusao))); } return(null); }
public List <DTOMensagemGuia> ObterMensagensGuiaConclusaoSolucaoSebrae(UsuarioTrilha matricula, TrilhaTopicoTematico loja) { var retorno = new List <DTOMensagemGuia>(); // Primeira conclusão. var mensagemPrimeiraConclusaoSolucaoSebrae = VerificarPrimeiraConclusaoSolucaoSebrae(matricula); if (mensagemPrimeiraConclusaoSolucaoSebrae != null) { retorno.Add(mensagemPrimeiraConclusaoSolucaoSebrae); } // Possuí o mínimo de moedas para prova final var mensagensPossuiMoedasProvaFinal = VerificarMoedasProvaFinal(matricula); if (mensagensPossuiMoedasProvaFinal != null) { retorno.Add(mensagensPossuiMoedasProvaFinal); } var mensagemEvolucaoPin = VerificarEvolucaoPin(matricula); if (mensagemEvolucaoPin != null) { retorno.Add(mensagemEvolucaoPin); } return(retorno); }
/// <summary> /// Inclui o histórico e a alteração no saldo das moedas do usuárioTrilha, itemTrilha se for solução sebrae e ou itemTrilhaCurtida se for uma curtida. /// </summary> /// <param name="usuarioTrilha"></param> /// <param name="itemTrilha"></param> /// <param name="itemTrilhaCurtida"></param> /// <param name="quantidadePrata"></param> /// <param name="quantidadeOuro"></param> /// <param name="tipoCurtidaAnterior"></param> public Dictionary <string, int> Incluir(UsuarioTrilha usuarioTrilha, ItemTrilha itemTrilha = null, ItemTrilhaCurtida itemTrilhaCurtida = null, int quantidadePrata = 0, int quantidadeOuro = 0, enumTipoCurtida tipoCurtidaAnterior = enumTipoCurtida.SemAcao) { VerificarRegrasNegocio(usuarioTrilha, itemTrilha, itemTrilhaCurtida, quantidadePrata, quantidadeOuro); var usuarioTrilhaMoedas = new UsuarioTrilhaMoedas() { TipoCurtida = itemTrilhaCurtida != null ? itemTrilhaCurtida.TipoCurtida : enumTipoCurtida.SemAcao, Curtida = itemTrilhaCurtida, ItemTrilha = itemTrilha, UsuarioTrilha = usuarioTrilha, MoedasDePrata = quantidadePrata, MoedasDeOuro = quantidadeOuro, DataCriacao = DateTime.Now, Auditoria = new Auditoria(usuarioTrilha.Usuario.CPF) }; if (itemTrilhaCurtida != null) { usuarioTrilhaMoedas.MoedasDePrata = CalcularCurtida(itemTrilhaCurtida, tipoCurtidaAnterior); } if (!this.IsCreditoDuplicado(usuarioTrilhaMoedas)) { _bmUsuarioTrilhaMoedas.Salvar(usuarioTrilhaMoedas); } return(new Dictionary <string, int>() { { "Ouro", Obter(usuarioTrilha, enumTipoMoeda.Ouro) }, { "Prata", Obter(usuarioTrilha, enumTipoMoeda.Prata) } }); }
protected void Page_Load(object sender, EventArgs e) { if (Request["token"] == null) { return; } var jwtToken = Request["token"]; var payload = JsonWebToken.DecodeToObject(jwtToken, "", false) as IDictionary <string, object>; if (payload != null) { var usuario = new ManterUsuario().ObterUsuarioPorID((int)payload["id"]); try { if (usuario != null && usuario.TrilhaTokenExpiry > DateTime.Now) { JsonWebToken.Decode(jwtToken, usuario.TrilhaToken); var nivel = new ManterTrilhaNivel().ObterTrilhaNivelPorID((int)payload["nid"]); if (!nivel.UsuarioPossuiMatricula((int)payload["id"])) { return; } var matricula = new ManterUsuarioTrilha().ObterPorUsuarioNivel(usuario.ID, nivel.ID); if (matricula == null) { return; } MatriculaSessao = matricula; new ManterUsuario().AdicionarTempoTokenTrilha(usuario); ltrNomeNivel.Text = matricula.TrilhaNivel.Nome; rptLojas.DataSource = matricula.TrilhaNivel.ListaPontoSebrae .Where( x => x.ListaMissoes.SelectMany(m => m.ListaItemTrilha).Any( it => it.Usuario == null && it.ObterStatusParticipacoesItemTrilha(matricula) == enumStatusParticipacaoItemTrilha.Aprovado)); rptLojas.DataBind(); } } catch { throw; } } }
private DTOMensagemGuia VerificarMoedasProvaFinal(UsuarioTrilha matricula) { try { var trilha = new ManterTrilha().ObterTrilhaPorId(matricula.TrilhaNivel.Trilha.ID); var momento = enumMomento.PossuirMoedasProvaFinal; // Refresh básico da matrícula. Foi mal, mas estamos com pressa. matricula = new ManterUsuarioTrilha().ObterPorId(matricula.ID); var moedas = new ManterUsuarioTrilhaMoedas().Obter(matricula, enumTipoMoeda.Ouro); var minimoMoedas = matricula.TrilhaNivel.QuantidadeMoedasProvaFinal; var jaVisualizou = new ManterUsuarioTrilhaMensagemGuia().ObterTodos() .Any(x => x.UsuarioTrilha.ID == matricula.ID && x.MensagemGuia.ID == momento); if (minimoMoedas > 0 && moedas >= minimoMoedas && !jaVisualizou) { var mensagem = new ManterMensagemGuia().ObterPorId(momento); var visualizacao = RegistrarVisualizacao(matricula, mensagem); return(new DTOMensagemGuia(visualizacao.ID, mensagem.ObterTexto(trilha, matricula))); } return(null); } catch (Exception) { return(null); } }
private void AplicarRegraParaExibirBotaoCertificado(GridViewRowEventArgs e) { if (e.Row.RowType.Equals(DataControlRowType.DataRow)) { Button btnCertificado = (Button)e.Row.FindControl("btnCertificado"); if (btnCertificado != null) { UsuarioTrilha usuarioTrilha = (UsuarioTrilha)e.Row.DataItem; if (usuarioTrilha != null && usuarioTrilha.TrilhaNivel != null && usuarioTrilha.TrilhaNivel.ID > 0) { if (usuarioTrilha.StatusMatricula.Equals(enumStatusMatricula.Aprovado)) { //Se existe um certificado template configurado para o nível, exibe o botão if (usuarioTrilha.TrilhaNivel.CertificadoTemplate != null && usuarioTrilha.TrilhaNivel.CertificadoTemplate.ID > 0) { btnCertificado.Visible = true; } } } } } }
protected void btnSalvar_Click(object sender, EventArgs e) { try{ var manterMatriculaTrilha = new ManterMatriculaTrilha(); if (Request["Id"] == null) { usuarioTrilhaEdicao = this.ucMatrilhaTrilha1.ObterObjetoUsuarioTrilha(); manterMatriculaTrilha.IncluirMatriculaTrilha(usuarioTrilhaEdicao); } else { this.ucMatrilhaTrilha1.IdUsuarioTrilhaEdit = int.Parse(Request["Id"].ToString()); usuarioTrilhaEdicao = this.ucMatrilhaTrilha1.ObterObjetoUsuarioTrilha(true); manterMatriculaTrilha.AlterarMatriculaTrilha(usuarioTrilhaEdicao); } Session.Remove("MatriculaTrilhaEdit"); WebFormHelper.ExibirMensagem(enumTipoMensagem.Sucesso, "Dados Gravados com Sucesso !", "ListarMatriculaTrilha.aspx"); }catch (AcademicoException ex) { WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, ex.Message); return; } }
public DTOTrilhaObjetivos ConsultarObjetivosPorChaveExterna(UsuarioTrilha usuarioTrilha, string chaveExterna) { var result = (new ManterObjetivo()).ObterObjetivoPorFiltro(new Objetivo() { ChaveExterna = chaveExterna }) .Select(x => new DTOObjetivosTrilhas() { IdObjetivo = x.ID, ChaveExterna = x.ChaveExterna, NomeObjetivo = x.Nome }).FirstOrDefault <DTOObjetivosTrilhas>(); var listaObj = new List <DTOObjetivosTrilhas>(); if (result != null) { var manterItemTrilhaPart = new ManterItemTrilhaParticipacao(); result.StatusObjetivo = manterItemTrilhaPart.UsuarioAprovadoObjetivo(usuarioTrilha, result.IdObjetivo); result.SolucoesObrigatorias = manterItemTrilhaPart.obtemSolucoesJogo(usuarioTrilha, result.IdObjetivo); listaObj.Add(result); } return(new DTOTrilhaObjetivos { Objetivos = listaObj, IdTrilha = usuarioTrilha.TrilhaNivel.Trilha.ID, IdTrilhaNivel = usuarioTrilha.TrilhaNivel.ID, NomeTrilha = usuarioTrilha.TrilhaNivel.Trilha.Nome, NomeTrilhaNivel = usuarioTrilha.TrilhaNivel.Nome }); }
public UsuarioTrilha ObterPorUsuarioTrilhaNivel(UsuarioTrilha matricula, TrilhaNivel nivel) { var query = repositorio.session.Query <UsuarioTrilha>(); var usuarioTrilha = query.FirstOrDefault(x => x.ID == matricula.ID && x.TrilhaNivel.ID == nivel.ID && x.NovasTrilhas == true); return(usuarioTrilha); }
private static void AplicarRegraDaDataLimite(UsuarioTrilha pUsuarioTrilha) { if (pUsuarioTrilha.DataLimite.Equals(DateTime.MinValue)) { pUsuarioTrilha.DataLimite = DateTime.Today.AddDays(pUsuarioTrilha.TrilhaNivel.QuantidadeDiasPrazo); } }
private List <DTOMensagemGuia> VerificarPrimeiroAcesso(UsuarioTrilha matricula, enumMomento momento, PontoSebrae pontoSebrae = null) { try { var mensagens = new List <DTOMensagemGuia>(); // Refresh básico da matrícula. Foi mal, mas estamos com pressa. var trilha = new ManterTrilha().ObterTrilhaPorId(matricula.TrilhaNivel.Trilha.ID); if (matricula.ListaVisualizacoesMensagemGuia.All(x => x.MensagemGuia.ID != momento)) { var mensagem = new ManterMensagemGuia().ObterPorId(momento); var visualizacao = RegistrarVisualizacao(matricula, mensagem); // Caso tenha um tutorial vinculado if (mensagem.Tipo == enumTipoMensagemGuia.Tutorial) { mensagens.Add(new DTOMensagemGuia(visualizacao.ID, ObterTutoriaisMensagemGuia(mensagem.Tutoriais))); return(mensagens); } mensagens.Add(new DTOMensagemGuia(visualizacao.ID, mensagem.ObterTexto(trilha, matricula, pontoSebrae: pontoSebrae))); return(mensagens); } return(null); } catch { return(null); } }
public IList <UsuarioTrilha> ObterPorFiltro(UsuarioTrilha pUsuarioTrilha, IEnumerable <int> ufsSelecionados) { var query = repositorio.session.Query <UsuarioTrilha>(); if (pUsuarioTrilha.TrilhaNivel != null && pUsuarioTrilha.TrilhaNivel.ID > 0) { query = query.Where(x => x.TrilhaNivel.ID == pUsuarioTrilha.TrilhaNivel.ID); } if (pUsuarioTrilha.Usuario != null && pUsuarioTrilha.Usuario.ID > 0) { query = query.Where(x => x.Usuario.ID == pUsuarioTrilha.Usuario.ID); } if (pUsuarioTrilha.ID > 0) { query = query.Where(x => x.ID == pUsuarioTrilha.ID); } if (pUsuarioTrilha.NovasTrilhas != null) { query = query.Where(x => x.NovasTrilhas == pUsuarioTrilha.NovasTrilhas); } query = ufsSelecionados.Any() ? query.Where(x => ufsSelecionados.Contains(x.Uf.ID)) : query; /* O Fetch faz o inner join / left outer join para buscar os dados do usuario. * O método CriarSessionFactory da classe NHibernateHelper possui a instrução * .UseOuterJoin() para indicar ao NHibernate que o left outer join será utilizado * nas queries */ query = query.Fetch(x => x.Usuario); query = query.Fetch(x => x.NivelOcupacional); return(query.ToList <UsuarioTrilha>()); }
protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { this.ucMatrilhaTrilha1.PreencherCombos(); //Se Veio da Tela de Pesquisa, trata a edição if (Request["Id"] != null) { int idItemTrilha = int.Parse(Request["Id"].ToString()); usuarioTrilhaEdicao = manterMatriculaTrilha.ObterMatriculaTrilhaPorID(idItemTrilha); PreencherCampos(usuarioTrilhaEdicao); this.ExibirPanelDeProvasRealizadas(); //Todo -> Criar tela para visualizar as provas do usuário PreencherGridComProvasRealizadas(usuarioTrilhaEdicao); this.HabilitarComboDeStatus(); this.ExibirCheckBoxDeAcessoBloqueado(); this.ucMatrilhaTrilha1.TratarStatus(this.usuarioTrilhaEdicao); //this.TratarStatus(); } else { this.EsconderPanelDeProvasRealizadas(); this.ucMatrilhaTrilha1.TratarInformacoesDaMatricula(); ////Cadastro //WebFormHelper.SetarValorNaCombo(((int)enumStatusMatricula.Inscrito).ToString(), ddlStatus, true); //this.DesabilitarComboDeStatus(); //this.EsconderCheckBoxDeAcessoBloqueado(); } } }
public dynamic ObterExtrato(UsuarioTrilha usuarioTrilha) { // Moedas por Solução Sebrae var solucoesSebrae = ObterTodos(usuarioTrilha).Where(x => x.ItemTrilha != null).Select(x => new { Nome = x.ItemTrilha.Nome, Moedas = x.MoedasDeOuro }).Take(4).ToList(); // Cambio de Moedas var cambioMoedas = ObterTodos(usuarioTrilha).Where(x => x.Curtida == null && x.ItemTrilha == null && x.MoedasDePrata < 0 && x.MoedasDeOuro > 0).Take(4).ToList().Select(x => new { QuantidadePrata = x.MoedasDePrata, QuantidadeOuro = x.MoedasDeOuro, DataCambio = x.DataCriacao }).ToList(); // Moedas por Solução Trilheiro (curtidas) var solucoesTrilheiro = usuarioTrilha.TrilhaNivel.ListaItemTrilha.Where(x => x.Usuario != null && x.Usuario.ID == usuarioTrilha.Usuario.ID).Select(x => new { Nome = x.Nome, Curtidas = usuarioTrilha.ObterCurtidasPorTipo(x, enumTipoCurtida.Curtiu), Descurtidas = usuarioTrilha.ObterCurtidasPorTipo(x, enumTipoCurtida.Descurtiu), ExcluirSolucaoTrilheiro = usuarioTrilha.ObterCurtidasPorTipo(x, enumTipoCurtida.ExcluirSolucaoTrilheiro), Moedas = usuarioTrilha.ObterSomaMoedasPrata(x) }).OrderByDescending(y => y.Curtidas).Take(4).ToList(); return(new { SolucoesSebrae = solucoesSebrae, SolucoesTrilheiro = solucoesTrilheiro, CambioMoedas = cambioMoedas }); }
private void TratarStatusNaoAprovado(UsuarioTrilha usuarioTrilhaEdicao) { this.usuarioTrilhaEdicao = usuarioTrilhaEdicao; //this.chkLiberarNovaProva.Enabled = false; //this.txtDataLiberacaoNovaProva.Enabled = false; if (this.StatusNaoAprovadoENovaProvaNaoLiberada) { //Exibe o check box "Liberar Nova Prova" this.chkLiberarNovaProva.Enabled = true; this.txtDataLiberacaoNovaProva.Enabled = true; //Se informou a Data de Liberação da Nova Prova if (!string.IsNullOrWhiteSpace(txtDataLiberacaoNovaProva.Text)) { //usuarioTrilhaEdicao.DataLiberacaoNovaProva = CommonHelper.TratarData(this.txtDataLiberacaoNovaProva.Text, "Data Fim"); this.txtDataLiberacaoNovaProva.Text = usuarioTrilhaEdicao.DataLiberacaoNovaProva.Value.ToShortDateString(); this.txtDataLiberacaoNovaProva.Enabled = true; } } else if (StatusNaoAprovadoENovaProvaLiberada) { //Esconde o check box "Liberar Nova Prova" this.chkLiberarNovaProva.Enabled = true; this.txtDataLiberacaoNovaProva.Enabled = true; this.chkLiberarNovaProva.Checked = true; } }
/// <summary> /// Faz as verificações de regra de negócio para inserção e alteração de moedas /// </summary> /// <param name="itemTrilha"></param> /// <param name="itemTrilhaCurtida"></param> /// <param name="quantidadePrata"></param> /// <param name="quantidadeOuro"></param> public void VerificarRegrasNegocio(UsuarioTrilha usuarioTrilha, ItemTrilha itemTrilha = null, ItemTrilhaCurtida itemTrilhaCurtida = null, int quantidadePrata = 0, int quantidadeOuro = 0) { if (itemTrilha != null && itemTrilhaCurtida != null) { throw new ResponseException(enumResponseStatusCode.ErroRegraNegocioTrilhas, "Não é possível incluir variações ao mesmo tempo no histórico de moedas."); } if (quantidadeOuro > 0 && quantidadePrata > 0) { throw new ResponseException(enumResponseStatusCode.ErroRegraNegocioTrilhas, "Não é possível incluir moedas de prata e ouro ao mesmo tempo, a troca só é válida ao remover prata e adicionar ouro."); } if (itemTrilha != null && quantidadePrata != 0) { throw new ResponseException(enumResponseStatusCode.ErroRegraNegocioTrilhas, "Não é possível incluir moedas de prata ao completar uma solução sebrae."); } if (itemTrilhaCurtida != null && quantidadeOuro != 0) { throw new ResponseException(enumResponseStatusCode.ErroRegraNegocioTrilhas, "Não é possível incluir moedas de ouro ao curtir uma solução do trilheiro."); } if (quantidadeOuro < 0) { throw new ResponseException(enumResponseStatusCode.ErroRegraNegocioTrilhas, "Não é possível retirar moedas de ouro."); } if (quantidadeOuro > 0 && quantidadePrata < 0 && Obter(usuarioTrilha, enumTipoMoeda.Prata) < 0) { throw new ResponseException(enumResponseStatusCode.ErroRegraNegocioTrilhas, "Usuário não possuí moedas de prata suficientes para realizar a troca."); } }
public UsuarioTrilha AtualizarStatusComRegras(UsuarioTrilha usuarioTrilha) { UsuarioTrilha usuSessaoAtual = null; if (usuarioTrilha.ID != 0) { usuSessaoAtual = this.ObterPorId(usuarioTrilha.ID); if (usuSessaoAtual.Cronometro.TotalSeconds <= 0) { if (!usuSessaoAtual.AprovadoProvaFinal) { usuSessaoAtual.StatusMatricula = enumStatusMatricula.Reprovado; } if (!usuSessaoAtual.TeveParticipacao) { usuSessaoAtual.StatusMatricula = enumStatusMatricula.Abandono; } } this.Salvar(usuSessaoAtual); } return(usuSessaoAtual); }
private DTOMensagemGuia VerificarHistoricoLider(UsuarioTrilha matricula, PontoSebrae pontoSebrae) { var manterLogLider = new ManterLogLider(); var trilha = new ManterTrilha().ObterTrilhaPorId(matricula.TrilhaNivel.Trilha.ID); // Só interessa obter os dois últimos logs. var ultimosLogs = manterLogLider.ObterPorAlunoPontoSebrae(matricula, pontoSebrae) .Where(x => x.PontoSebrae.ID == pontoSebrae.ID) .OrderByDescending(x => x.ID) .Take(2) .ToList(); // Só interessa se a quantidade de logs for maior que 1. Se houver somente 1 log, não é necessário exibir nenhuma msg. if (ultimosLogs.Count() > 1) { var ultimoLog = ultimosLogs[0]; var penultimoLog = ultimosLogs[1]; // Explicando a lógica complicada abaixo: // Se não havia líder no último acesso e agora tem, exibe a msg do primeiro líder. // Caso existem líderes nos dois últimos logs, mas sejam líderes diferentes, exibe a msg. // Se nenhuma condição for satisfeita, retorna null e escapa da mensagem. var momento = penultimoLog.Lider == null && ultimoLog.Lider != null ? enumMomento.PrimeiroLiderLojaUltimoAcesso : (penultimoLog.Lider != null && ultimoLog.Lider != null && penultimoLog.Lider.ID != ultimoLog.Lider.ID ? (enumMomento?)enumMomento.AlteracaoLiderLojaUltimoAcesso : null); // Ragequit. if (momento == null) { return(null); } var mensagem = new ManterMensagemGuia().ObterPorId(momento.Value); // Verificar se a última visualização da mensagem foi para o líder atual. // Só faz sentido ser executado caso o momento seja AlteracaoLiderLojaUltimoAcesso if (momento.Value == enumMomento.AlteracaoLiderLojaUltimoAcesso && mensagem.ListaUsuarioTrilhaMensagemGuia.LastOrDefault( x => x.UsuarioTrilha.ID == matricula.ID && x.LogLider != null && x.LogLider.Lider.ID == penultimoLog.Lider.ID) != null) { return(null); } var visualizacao = RegistrarVisualizacao(matricula, mensagem, ultimoLog); return(new DTOMensagemGuia(visualizacao.ID, mensagem.ObterTexto(trilha, matricula, ultimoLog, pontoSebrae: pontoSebrae))); } return(null); }
private void GerarRelatorioHistoricoAtividade(int idUsuarioTrilha) { using (RelatorioHistoricoAtividade relHist = new RelatorioHistoricoAtividade()) { usuarioTrilha = relHist.ObterUsuarioTrilhaPorID(idUsuarioTrilha); IList <DTORelatorioHistoricoAtividadeDadosBasicos> relDp = null; // relHist.ConsultarHistoricoAtividadesDadosPessoais(pIdUsuarioTrilha); this.listaDTOAlunoDaTrilha = new ManterUsuarioTrilha().ListarRelatorioDoAlunoDaTrilha(usuarioTrilha.ID); //Dados Básico do usuário relDp = relHist.ObterDTORelatorioHistoricoAtividadeDadosBasicos(this.listaDTOAlunoDaTrilha); lstTopicoCount = relHist.ConsultarHistoricoAtividadeTopicoTematico(listaDTOAlunoDaTrilha); lstNotaProva = relHist.ConsultaHistoricoAtividadeNotaProva(usuarioTrilha.ID); lstDiagnostico = relHist.ConsultarHistoricoAtividadeDiagnostico(usuarioTrilha.ID); ReportViewer rv = new ReportViewer(); Assembly assembly = Assembly.LoadFrom(binPath + "\\Sebrae.Academico.Reports.dll"); Stream stream = assembly.GetManifestResourceStream("Sebrae.Academico.Reports.HistoricoAtividades.rptHistoricoAtividades.rdlc"); rv.LocalReport.LoadReportDefinition(stream); stream = assembly.GetManifestResourceStream("Sebrae.Academico.Reports.HistoricoAtividades.rptHistoricoAtividadesTopicoTematico.rdlc"); rv.LocalReport.LoadSubreportDefinition("HistoricoAtividades.rptHistoricoAtividadesTopicoTematico.rdlc", stream); rv.LocalReport.DataSources.Clear(); rv.LocalReport.DataSources.Add(new ReportDataSource("DataSet1", relDp)); rv.LocalReport.DataSources.Add(new ReportDataSource("DataSet2", lstNotaProva)); rv.LocalReport.DataSources.Add(new ReportDataSource("DataSet2a", lstDiagnostico)); rv.LocalReport.DataSources.Add(new ReportDataSource("DataSet3", this.listaDTOAlunoDaTrilha)); rv.LocalReport.SubreportProcessing += new SubreportProcessingEventHandler(LocalReport_SubreportProcessing); rv.LocalReport.Refresh(); try { byte[] arradeBytes = rv.LocalReport.Render("PDF"); HttpContext.Current.Response.Clear(); HttpContext.Current.Response.ClearHeaders(); HttpContext.Current.Response.ContentType = "application/pdf"; HttpContext.Current.Response.AddHeader("Content-Disposition", string.Format("attachement; filename=\"{0}\"", "HistoricoAtividade.pdf")); HttpContext.Current.Response.AddHeader("Content-Length", arradeBytes.Length.ToString()); HttpContext.Current.Response.OutputStream.Write(arradeBytes, 0, arradeBytes.Length); HttpContext.Current.Response.Flush(); HttpContext.Current.Response.End(); } catch (System.Exception ex) { Exception inner = ex.InnerException; while (inner != null) { string mensagem = inner.Message; inner = inner.InnerException; } } } }
public bool TutorialLido(UsuarioTrilha usuarioTrilha, enumCategoriaTrilhaTutorial categoriaId) { return (repositorioTrilhaTutorialAcesso.ObterTodosIQueryable() .Where(x => x.UsuarioTrilha.ID == usuarioTrilha.ID && x.Categoria == categoriaId) .Select(x => new { x.ID }) .Any()); }
private static string ObterCorpoEmail(UsuarioTrilha usuarioTrilha, string textoTemplate) { var corpo = textoTemplate.Replace("#NOME_USUARIO", usuarioTrilha.Usuario.Nome); corpo = corpo.Replace("#NOME_TRILHA", usuarioTrilha.TrilhaNivel.Trilha.Nome + " - " + usuarioTrilha.TrilhaNivel.Nome); return(corpo); }
private void SetarValorNaComboUsuario(UsuarioTrilha usuarioTrilha) { if (usuarioTrilha != null && usuarioTrilha.Usuario != null) { ddlNomeAluno.Items.Add(new ListItem(usuarioTrilha.Usuario.Nome, usuarioTrilha.Usuario.ID.ToString())); WebFormHelper.SetarValorNaCombo(usuarioTrilha.Usuario.ID.ToString(), ddlNomeAluno, true); } }
/// <summary> /// Calcula as moedas pelo histórico e atualiza as mesmas no saldo do usuário. /// </summary> /// <param name="usuarioTrilha"></param> /// <returns></returns> public Dictionary <string, int> CalcularMoedas(UsuarioTrilha usuarioTrilha) { return(new Dictionary <string, int>() { { "Ouro", Obter(usuarioTrilha, enumTipoMoeda.Ouro) }, { "Prata", Obter(usuarioTrilha, enumTipoMoeda.Prata) } }); }
public bool ValidarDependencias(UsuarioTrilha pUsuarioTrilha) { ValidarInstancia(pUsuarioTrilha); UsuarioTrilha usuarioTrilha = (UsuarioTrilha)pUsuarioTrilha; return((usuarioTrilha.ListaItemTrilhaParticipacao != null && usuarioTrilha.ListaItemTrilhaParticipacao.Count > 0) || (usuarioTrilha.ListaTrilhaAtividadeFormativaParticipacao != null && usuarioTrilha.ListaTrilhaAtividadeFormativaParticipacao.Count > 0)); }
// Caso o usuário tenha participado de todos os itens do tópico temático (loja) public bool VerificarUltimaParticipacao(UsuarioTrilha usuario, ItemTrilha itemTrilha) { return (itemTrilha.Missao.PontoSebrae.ObterItensTrilha().Where(x => x.Usuario == null && x.Ativo == true) .All( x => x.Tipo != null && x.ObterStatusParticipacoesItemTrilha(usuario) == enumStatusParticipacaoItemTrilha.Aprovado)); }
public void Excluir(UsuarioTrilha pUsuarioTrilha) { if (ValidarDependencias(pUsuarioTrilha)) { throw new AcademicoException("Exclusão de registro negada. Existem Registros Dependentes desta Matrícula."); } repositorio.Excluir(pUsuarioTrilha); }
public void ChecarAvaliacao() { var usuario = new UsuarioTrilha { ID = 1 }; Assert.IsTrue(itemTrilha.ChecarAvaliacao(usuario)); }
public void VerificarCamposObrigatoriosDoFiltro(UsuarioTrilha pUsuarioTrilha) { ValidarInstancia(pUsuarioTrilha); if (pUsuarioTrilha.TrilhaNivel == null) { throw new Exception("Nível da Trilha. Campo Obrigatório "); } }