private DTOMensagemGuia VerificarConclusaoMetadeSolucoesLoja(UsuarioTrilha matricula, PontoSebrae pontoSebrae) { try { var trilha = new ManterTrilha().ObterTrilhaPorId(matricula.TrilhaNivel.Trilha.ID); // Refresh básico da loja. Foi mal, mas estamos com pressa. pontoSebrae = new ManterPontoSebrae().ObterPorId(pontoSebrae.ID); var momento = enumMomento.ConcluirMetadeSolucoesLoja; // Refresh básico da matrícula. Foi mal, mas estamos com pressa. matricula = new ManterUsuarioTrilha().ObterPorId(matricula.ID); var solucoesSebrae = pontoSebrae.ObterItensTrilha(); if (!new ManterUsuarioTrilhaMensagemGuia().ObterTodos() .Any( x => x.UsuarioTrilha.ID == matricula.ID && x.ItemTrilha.Missao.PontoSebrae.ID == pontoSebrae.ID && x.MensagemGuia.ID == momento)) { var concluidos = solucoesSebrae .Count( x => x.Usuario == null && x.Missao.PontoSebrae.TrilhaNivel.ID == matricula.TrilhaNivel.ID && x.PodeExibir() && x.ObterStatusParticipacoesItemTrilha(matricula) == enumStatusParticipacaoItemTrilha.Aprovado && x.Ativo.Value); if (concluidos > 0) { var mensagem = new ManterMensagemGuia().ObterPorId(momento); var ids = solucoesSebrae.Select(x => new { x.ID }).Select(x => x.ID).ToList(); var solucaoSebraeMetade = solucoesSebrae .FirstOrDefault(x => ids.IndexOf(x.ID) >= concluidos / 2); var visualizacao = RegistrarVisualizacao(matricula, mensagem, null, solucaoSebraeMetade); return(new DTOMensagemGuia(visualizacao.ID, mensagem.ObterTexto(trilha, matricula, solucaoSebrae: solucaoSebraeMetade, pontoSebrae: pontoSebrae))); } } return(null); } catch (Exception) { return(null); } }
protected void ddlAtivo_OnSelectedIndexChanged(object sender, EventArgs e) { if (ddlAtivo.SelectedValue == "N" && Request["Id"] != null) { int id; if (int.TryParse(Request["Id"], out id)) { var pontoSebrae = new ManterPontoSebrae().ObterPorId(id); var itensTrilha = pontoSebrae?.ObterItensTrilha().Where(x => x.Missao != null && x.Usuario == null).ToList(); if (itensTrilha != null && itensTrilha.Any()) { // Informando total de itens totalItemTrilha.Text = itensTrilha.Count.ToString(); rptItemTrilha.DataSource = itensTrilha; rptItemTrilha.DataBind(); ExibirModal(); } } } }
private DTOMensagemGuia VerificarConclusaoTodasSolucoesLoja(UsuarioTrilha matricula, PontoSebrae pontoSebrae) { try { var trilha = new ManterTrilha().ObterTrilhaPorId(matricula.TrilhaNivel.Trilha.ID); // Refresh básico da loja. Foi mal, mas estamos com pressa. pontoSebrae = new ManterPontoSebrae().ObterPorId(pontoSebrae.ID); var momento = enumMomento.ConclusoesTodasSolucoesLoja; // Refresh básico da matrícula. Foi mal, mas estamos com pressa. matricula = new ManterUsuarioTrilha().ObterPorId(matricula.ID); if ( !new ManterUsuarioTrilhaMensagemGuia().ObterTodos() .Any( x => x.UsuarioTrilha.ID == matricula.ID && x.ItemTrilha.Missao.PontoSebrae.ID == pontoSebrae.ID && x.MensagemGuia.ID == momento)) { var total = pontoSebrae.ObterItensTrilha() .Count( x => x.Usuario == null && x.Missao.PontoSebrae.TrilhaNivel.ID == matricula.TrilhaNivel.ID && x.PodeExibir() && x.Ativo.Value); var concluidos = pontoSebrae.ObterItensTrilha() .Count( x => x.Usuario == null && x.Missao.PontoSebrae.TrilhaNivel.ID == matricula.TrilhaNivel.ID && x.PodeExibir() && x.ObterStatusParticipacoesItemTrilha(matricula) == enumStatusParticipacaoItemTrilha.Aprovado && x.Ativo.Value); if (total > 0 && concluidos == total) { var mensagem = new ManterMensagemGuia().ObterPorId(momento); var ultimaSolucaoSebrae = pontoSebrae.ObterItensTrilha() .LastOrDefault( x => x.Missao.PontoSebrae.ID == pontoSebrae.ID && x.ListaItemTrilhaParticipacao.Any() && x.ListaItemTrilhaParticipacao.FirstOrDefault().UsuarioTrilha.ID == matricula.ID); var visualizacao = RegistrarVisualizacao(matricula, mensagem, null, ultimaSolucaoSebrae); return(new DTOMensagemGuia(visualizacao.ID, mensagem.ObterTexto(trilha, matricula, solucaoSebrae: ultimaSolucaoSebrae, pontoSebrae: pontoSebrae))); } } return(null); } catch { return(null); } }