public void vinculaMatriculaOferta(MatriculaOferta matriculaOferta) { matriculaOferta = new ManterMatriculaOferta().ObterMatriculaOfertaPorID(matriculaOferta.ID); // VERIFICA SE MATRICULA OFERTA PERTENCE A ALGUM ITEM TRILHA if (!matriculaOferta.ListaItemTrilhaParticipacao.Any()) { //BUSCA A LISTA DE TURMAS DA MESMA OFERTA CONTINUA var turmasOfertaID = new ManterTurma().ObterTodosIQueryable() .Where(x => x.Oferta.ID == matriculaOferta.Oferta.ID) .Select(x => x.ID).ToList(); //BUSCA A LISTA DE MATRICULAS OFERTA DO USUARIO POR TURMA var matriculasOfertaID = new ManterMatriculaTurma().ObterTodosIQueryable() .Where(x => turmasOfertaID.Contains(x.Turma.ID) && matriculaOferta.Usuario.ID == x.MatriculaOferta.Usuario.ID) .Select(y => y.MatriculaOferta.ID) .ToList(); var itemTrilhaParticipacaoUsuario = new ManterItemTrilhaParticipacao().ObterTodosIQueryable() .FirstOrDefault(x => matriculasOfertaID.Contains(x.MatriculaOferta.ID) && x.Autorizado == false); if (itemTrilhaParticipacaoUsuario != null) { itemTrilhaParticipacaoUsuario.MatriculaOferta = matriculaOferta; Salvar(itemTrilhaParticipacaoUsuario); } } }
public void AtualizarStatusParticipacoesTrilhas(MatriculaOferta matriculaOferta) { matriculaOferta = new ManterMatriculaOferta().ObterMatriculaOfertaPorID(matriculaOferta.ID); List <ItemTrilhaParticipacao> participacoes; try { participacoes = matriculaOferta.ListaItemTrilhaParticipacao.ToList(); } catch { try { participacoes = new ManterMatriculaOferta().ObterMatriculaOfertaPorID(matriculaOferta.ID).ListaItemTrilhaParticipacao.ToList(); } catch (Exception) { throw new AcademicoException("Erro ao atualizar participação na Solução Sebrae de Trilhas."); } } // Verificar se a matrícula do aluno está vinculada a algum ItemTrilhaParticipacao e altera a participação de acordo. if (participacoes.Any()) { var participacao = participacoes.LastOrDefault(); if (participacao == null) { throw new AcademicoException("Item Trilha Participação inválido para a matrícula."); } var anterior = participacoes.LastOrDefault(x => x.ID != participacao.ID); bool?autorizacaoAnterior = (anterior != null) ? anterior.Autorizado : false; participacao.Autorizado = IsAutorizado(participacao.MatriculaOferta, participacao.Autorizado); if (autorizacaoAnterior == false && participacao.Autorizado == true) { participacao.DataAvaliacao = DateTime.Now; participacao.DataEnvio = DateTime.Now; } Salvar(participacao); if (autorizacaoAnterior == false && participacao.Autorizado == true) { new ManterTrilhaTopicoTematicoParticipacao().IncluirUltimaParticipacao(participacao.UsuarioTrilha, participacao.ItemTrilha); new ManterUsuarioTrilhaMoedas().Incluir(participacao.UsuarioTrilha, participacao.ItemTrilha, null, 0, participacao.ItemTrilha.Moedas ?? 0); } } }
public void IncluirItemTrilhaParticipacao(ItemTrilhaParticipacao pItemTrilhaParticipacao) { if (pItemTrilhaParticipacao != null && pItemTrilhaParticipacao.MatriculaOferta.IsCancelado()) { var currentMatriculaOferta = new ManterMatriculaOferta() .ObterTodosIQueryable() .LastOrDefault(x => x.Usuario.ID == pItemTrilhaParticipacao.MatriculaOferta.Usuario.ID && x.Oferta.SolucaoEducacional.ID == pItemTrilhaParticipacao.MatriculaOferta.Oferta.SolucaoEducacional.ID && (!x.IsCancelado() && x.StatusMatricula == enumStatusMatricula.Inscrito)); if (currentMatriculaOferta != null) { pItemTrilhaParticipacao.MatriculaOferta = currentMatriculaOferta; } } _bmItemTrilhaParticipacao.ValidarItemTrilhaParticipacaoInformado(pItemTrilhaParticipacao); //PreencherInformacoesDeAuditoria(pItemTrilhaParticipacao); _bmItemTrilhaParticipacao.Salvar(pItemTrilhaParticipacao); }