public ActionResult <object> GetProfesorByCurso(int cursoId, int alumnoId) { DTOCurso model = new DTOCurso(); var matricula = Context.Matricula.Where(x => x.AlumnoId == alumnoId && x.EstadoId == 1).FirstOrDefault(); return(Context.MatriculaCursoProfesor.Include("Profesor").Where(x => x.CursoId == cursoId && x.Matricula.MatriculaId == matricula.MatriculaId && x.EstadoId == 1).Select(x => new { profesor = x.Profesor, }).FirstOrDefault()); }
public DTOSolucoes ConsultarTurmaPorSolucaoEducacional(int idSolucaoEducacional, int idOferta, string cpfUsuario) { DTOSolucoes retorno = new DTOSolucoes(); var usuario = new BMUsuario().ObterPorCPF(cpfUsuario); List <int> permissoesOfertas = new BMOferta().ObterListaDePermissoes(usuario.ID).Select(f => f.IdOferta).Distinct().ToList(); var solucaoEducacional = new ManterSolucaoEducacional().ObterSolucaoEducacionalPorId(idSolucaoEducacional); IList <Oferta> ofertas = RecuperarOfertasValidas(solucaoEducacional, permissoesOfertas); if (idOferta > 0) { ofertas = ofertas.Where(f => f.ID == idOferta).ToList(); } var se = new DTOCurso(); se.IDSolucaoEducacional = solucaoEducacional.ID; foreach (var oferta in ofertas) { var o = new DTOOfertas { IDOferta = oferta.ID, PermiteAlterarStatusPeloGestor = (oferta.AlteraPeloGestorUC.HasValue ? oferta.AlteraPeloGestorUC.Value : true) }; var turmas = oferta.ListaTurma.Where( f => (f.DataFinal == null || f.DataFinal.Value.Date > DateTime.Today) && f.InAberta).ToList(); foreach (var turma in turmas) { o.ListaTurma.Add(new DTOOfertaTurma { IdTurma = turma.ID, Nome = turma.Nome }); } se.Ofertas.Add(o); } if (se.Ofertas.Count() > 0) { retorno.Cursos.Add(se); } return(retorno); }
public ActionResult <object> UpdateCurso([FromBody] DTOCurso curso) { if (!ModelState.IsValid) { return(NotFound()); } var updateCurso = Context.Curso.Find(curso.CursoId); updateCurso.Nombre = curso.Nombre; Context.SaveChanges(); return(Ok()); }
public ActionResult <object> AddCurso([FromBody] DTOCurso curso) { if (!ModelState.IsValid) { return(NotFound()); } var newCurso = Context.Curso.Find(curso.CursoId); if (newCurso == null) { newCurso = new Curso(); Context.Curso.Add(newCurso); } newCurso.Nombre = curso.Nombre; newCurso.EstadoId = 1; Context.SaveChanges(); return(Ok()); }
public DTOSolucoes ConsultarDisponibilidadeMatriculaPorUsuario(int pIdUsuario, int idSolucaoEducacional, int cargaHoraria) { var retorno = new DTOSolucoes(); var usuario = new ManterUsuario().ObterUsuarioPorID(pIdUsuario); if (usuario != null) { var permissoesSoculaoEducacional = new BMSolucaoEducacional().ObterListaDePermissoes(usuario.ID, idSolucaoEducacional) .Select(f => f.SolucaoEducacional.ID) .Distinct() .ToList(); var permissoesOfertas = new BMOferta().ObterListaDePermissoes(usuario.ID).Select(f => f.IdOferta).Distinct().ToList(); if (idSolucaoEducacional > 0 && permissoesSoculaoEducacional.Contains(idSolucaoEducacional)) { permissoesSoculaoEducacional.Clear(); permissoesSoculaoEducacional.Add(idSolucaoEducacional); } var solucoes = new ManterSolucaoEducacional().ObterPorFiltroPesquisa(new SolucaoEducacional(), true, permissoesSoculaoEducacional); foreach (var solucaoEducacional in solucoes) { var ofertas = solucaoEducacional.ListaOferta.Where( x => (x.DataInicioInscricoes.HasValue && x.DataInicioInscricoes.Value.Date <= DateTime.Today) && x.DataFimInscricoes.HasValue && x.DataFimInscricoes.Value.Date >= DateTime.Today && permissoesOfertas.Contains(x.ID) && //x.ListaPermissao.Any(f=>f.Uf.ID == usuario.UF.ID) && !(x.ListaTurma.Any( f => (f.DataFinal == null || f.DataFinal.Value.Date > DateTime.Today) && // Remover turmas canceladas das possibilidades de matrícula. #2997 f.Status != enumStatusTurma.Cancelada && f.InAberta == false))); if (cargaHoraria > 0) { ofertas = ofertas.Where(f => f.CargaHoraria == cargaHoraria); } var se = new DTOCurso { IDSolucaoEducacional = solucaoEducacional.ID }; foreach (var oferta in ofertas.OrderBy(x => x.DataInicioInscricoes)) { if (oferta.TipoOferta.Equals(enumTipoOferta.Exclusiva)) { break; } //Verificando se existe alguma matricula na SE if (ExisteAlgumaMatriculaComoInscrito(usuario.ListaMatriculaOferta, se.IDSolucaoEducacional)) { break; } //VALIDAR SE O USUARIO POSSUI ACESSO A SE: 205 (permissão a se) //VALIDADO NA BUSCA //VALIDAR SE O USUARIO ESTA CURSANDO OUTRA SE //VERIFICA O LIMITE DE CURSOS SIMULTANEOS int cursosEmAndamento = usuario.ListaMatriculaOferta.Where( x => x.StatusMatricula.Equals(enumStatusMatricula.Inscrito)).Count(); int limteCursosSimultaneos = int.Parse( ConfiguracaoSistemaUtil.ObterInformacoes(enumConfiguracaoSistema.CursosSimultaneos) .Registro); if (cursosEmAndamento >= limteCursosSimultaneos) { break; } //VALIDAR SE O USUARIO ESTA COM ALGUM ABANDONO ATIVO if (new BMUsuarioAbandono().ValidarAbandonoAtivo(usuario.ID)) { break; } //VERIFICA SE A OFERTA INFORMADA FOI ENCONTRADA //NO CADASTRO if (oferta.TipoOferta.Equals(enumTipoOferta.Continua)) { } if (oferta.TipoOferta.Equals(enumTipoOferta.Normal)) { } var qtdInscritosNaOferta = oferta.ListaMatriculaOferta.Count( x => (x.StatusMatricula != enumStatusMatricula.CanceladoAdm && x.StatusMatricula != enumStatusMatricula.CanceladoAluno)); if (qtdInscritosNaOferta >= oferta.QuantidadeMaximaInscricoes && !oferta.FiladeEspera) { break; } var trancadoPorNaoPagante = false; if (oferta.ListaNiveisTrancados != null && oferta.ListaNiveisTrancados.Any(x => x.ID == usuario.NivelOcupacional.ID)) { if (!VerificarTrancadoParaPagante(usuario)) { trancadoPorNaoPagante = true; } } se.Ofertas.Add(new DTOOfertas { IDOferta = oferta.ID, CargaHoraria = oferta.CargaHoraria, TrancadoPorNaoPagamento = trancadoPorNaoPagante, Nome = oferta.Nome }); } if (se.Ofertas.Any()) { retorno.Cursos.Add(se); } } } return(retorno); }