public IList <SolucaoEducacional> ObterSolucaoEducacional() { using (var solucaoEducacionalBm = new BMSolucaoEducacional()) { return(solucaoEducacionalBm.ObterTodos().ToList()); } }
public List <DTOSolucaoEducacional> ConsultarSolucaoEducacionalPorFornecedor(string idChaveExterna, AuthenticationProviderRequest autenticacao) { solucaoEducacionalBM = new BMSolucaoEducacional(); SolucaoEducacional solucaoFiltro = new SolucaoEducacional(); solucaoFiltro.Fornecedor = new BMFornecedor().ObterPorLogin(autenticacao.Login); solucaoFiltro.IDChaveExterna = idChaveExterna; var listaSolucao = solucaoEducacionalBM.ObterPorFiltro(solucaoFiltro); List <DTOSolucaoEducacional> listaRetorno = new List <DTOSolucaoEducacional>(); foreach (var registro in listaSolucao) { DTOSolucaoEducacional dtoRegistro = new DTOSolucaoEducacional(); dtoRegistro.Apresentacao = registro.Apresentacao; dtoRegistro.Ativo = registro.Ativo; dtoRegistro.Autor = registro.Autor; dtoRegistro.Ementa = registro.Ementa; dtoRegistro.ID = registro.ID; dtoRegistro.IdCategoriaSolucaoEducacional = registro.CategoriaConteudo.ID; dtoRegistro.IDChaveExterna = registro.IDChaveExterna; dtoRegistro.IdFormaAquisicao = registro.FormaAquisicao.ID; dtoRegistro.Nome = registro.Nome; dtoRegistro.Objetivo = registro.Objetivo; dtoRegistro.TemMaterial = registro.TemMaterial; listaRetorno.Add(dtoRegistro); } return(listaRetorno); }
private void ValidarMetaInstitucional(int pUsuario, int pSolucaoEducacional, List <int> pListaIdMetaInstitucionalAssociada, AuthenticationRequest autenticacao) { try { MetaInstitucional mi = null; if (pListaIdMetaInstitucionalAssociada != null && pListaIdMetaInstitucionalAssociada.Count > 0) { foreach (int IdMetaIndividualAssociada in pListaIdMetaInstitucionalAssociada) { mi = new BMMetaInstitucional().ObterPorID(IdMetaIndividualAssociada); if (!mi.ListaItensMetaInstitucional.Any(x => x.Usuario.ID == pUsuario && x.SolucaoEducacional.ID == pSolucaoEducacional)) { mi.ListaItensMetaInstitucional.Add(new ItemMetaInstitucional() { Auditoria = new Auditoria(autenticacao.Login), MetaInstitucional = new BMMetaInstitucional().ObterPorID(mi.ID), SolucaoEducacional = new BMSolucaoEducacional().ObterPorId(pSolucaoEducacional), Usuario = new BMUsuario().ObterPorId(mi.ID), }); using (BMMetaInstitucional miBM = new BMMetaInstitucional()) miBM.Salvar(mi); } } SolucaoEducacional se = null; using (BMSolucaoEducacional seBM = new BMSolucaoEducacional()) se = seBM.ObterPorId(pSolucaoEducacional); Usuario user = null; using (BMUsuario userBM = new BMUsuario()) user = userBM.ObterPorId(pUsuario); foreach (var tagSe in se.ListaTags) { UsuarioTag ut = user.ListaTag.FirstOrDefault(x => x.Tag.ID == tagSe.ID); if (ut == null) { user.ListaTag.Add(new UsuarioTag() { Usuario = new BMUsuario().ObterPorId(pUsuario), Auditoria = new Auditoria(autenticacao.Login), Tag = new BMTag().ObterPorID(tagSe.Tag.ID), Adicionado = false }); } using (BMUsuario userBM = new BMUsuario()) userBM.Salvar(user); } } } catch { } }
public IQueryable <SolucaoEducacional> ObterSolucaoEducacionalTodos() { using (var solEducBm = new BMSolucaoEducacional()) { return(solEducBm.ObterTodos()); } }
public IQueryable <SolucaoEducacional> ObterSolucaoEducacionalPorFormaAquisicao(int idFormaAquisicao = 0) { using (var solEduBm = new BMSolucaoEducacional()) { return(solEduBm.ObterTodos() .Where(s => idFormaAquisicao == 0 || s.FormaAquisicao.ID == idFormaAquisicao)); } }
public void IncluirMetaIndividual(int ID_usuario, string ID_ChaveExterna, string Descricao, string Nome, DateTime DataValidade, string[] ListaSolucaoEducacional = null, string FornecedorAlteracao = null) { try { this.RegistrarLogExecucaoFornecedor((new BMFornecedor()).ObterPorFiltro(new Fornecedor() { Login = FornecedorAlteracao }).FirstOrDefault(), "IncluirMetaIndividual"); using (BMMetaIndividual metaIndividualBM = new BMMetaIndividual()) { MetaIndividual mi = new MetaIndividual() { DataValidade = DataValidade, Nome = Nome, IDChaveExterna = ID_ChaveExterna, Auditoria = new Auditoria(FornecedorAlteracao), Usuario = new BMUsuario().ObterPorId(ID_usuario), ListaItensMetaIndividual = new List <ItemMetaIndividual>() }; Fornecedor f = new BMFornecedor().ObterPorFiltro(new Fornecedor() { Login = FornecedorAlteracao }).FirstOrDefault(); foreach (string str in ListaSolucaoEducacional) { SolucaoEducacional se = new BMSolucaoEducacional().ObterPorFiltro(new SolucaoEducacional() { Nome = str, Fornecedor = f }).FirstOrDefault(); if (se != null) { ItemMetaIndividual it = new ItemMetaIndividual() { Auditoria = new Auditoria(FornecedorAlteracao), MetaIndividual = mi, SolucaoEducacional = se, }; mi.ListaItensMetaIndividual.Add(it); } } metaIndividualBM.Salvar(mi); } } catch (Exception ex) { ErroUtil.Instancia.TratarErro(ex); } }
public void ValidarPermissaoUsuario(int idUsuario, int idSolucaoEducacional) { bool usuarioPossuiPermissao = new BMSolucaoEducacional().VerificarSeUsuarioPossuiPermissao(idUsuario, idSolucaoEducacional); if (!usuarioPossuiPermissao) { throw new AcademicoException("Erro: O usuário Informado não possui permissão à Solução Educacional"); } }
public void ValidarOferta(int idSolucaoEducacional, int idOferta) { SolucaoEducacional solucaoEducacional = new BMSolucaoEducacional().ObterPorId(idSolucaoEducacional); Oferta oferta = new Oferta(); oferta = solucaoEducacional.ListaOferta.FirstOrDefault(x => x.ID == idOferta); if (oferta == null) { throw new AcademicoException("Erro: Oferta não encontrada"); } }
public IList <SolucaoEducacional> ObterSolucaoEducacionalPorFormaAquisicao(int idFormaAquisicao) { using (var solEduBM = new BMSolucaoEducacional()) { return(solEduBM.ObterPorFiltro(new SolucaoEducacional() { FormaAquisicao = new BMFormaAquisicao().ObterPorID(idFormaAquisicao) }) .OrderBy(n => n.Nome) .ToList()); } }
public IQueryable <SolucaoEducacional> ObterSolucaoEducacionalTodos(Uf uf = null) { using (var solEducBm = new BMSolucaoEducacional()) { var retorno = solEducBm.ObterTodos(); if (uf != null) { solEducBm.FiltrarPermissaoVisualizacao(ref retorno, uf.ID); } return(retorno); } }
public IQueryable <SolucaoEducacional> ObterSolucoesEducacionais(Uf uf = null) { using (var bmSe = new BMSolucaoEducacional()) { var ses = bmSe.ObterTodos(); if (uf != null) { bmSe.FiltrarPermissaoVisualizacao(ref ses, uf.ID); } return(ses); } }
public IQueryable <SolucaoEducacional> ObterSolucaoEducacionalPorFormaAquisicao(int formaAquisicaoId = 0) { using (var seBm = new BMSolucaoEducacional()) { var retorno = seBm.ObterTodos(); if (formaAquisicaoId > 0) { retorno = retorno.Where(s => s.FormaAquisicao.ID == formaAquisicaoId); } return(retorno); } }
public IQueryable <SolucaoEducacional> ListaSolucoesEducacionais() { IQueryable <SolucaoEducacional> listaSolucoesEducacionais = null; try { listaSolucoesEducacionais = new BMSolucaoEducacional().ObterTodos(); } catch (Exception ex) { ErroUtil.Instancia.TratarErro(ex); } return(listaSolucoesEducacionais); }
public void ManterExternoSolucaoEducacional(DTOSolucaoEducacional pDTOSolucaoEducacional, AuthenticationProviderRequest pAutenticacao) { try { this.RegistrarLogExecucaoFornecedor((new BMFornecedor()).ObterPorFiltro(new Fornecedor() { Login = pAutenticacao.Login, Senha = pAutenticacao.Senha }).FirstOrDefault(), "CadastrarSolucaoEducacional"); SolucaoEducacional solucaoEducacional = new BMSolucaoEducacional().ObterPorIDFornecedorEIdChaveExterna(pAutenticacao.Login, pDTOSolucaoEducacional.IDChaveExterna); if (solucaoEducacional == null) { //CRIACAO ValidarCamposSolucaoEducacional(pDTOSolucaoEducacional); solucaoEducacional = PreencherObjetoSolucaoEducacional(pDTOSolucaoEducacional, pAutenticacao, solucaoEducacional); solucaoEducacional.DataCadastro = DateTime.Now; if (solucaoEducacional.FormaAquisicao == null) { throw new AcademicoException("A forma de aquisição não foi encontrada"); } if (solucaoEducacional.CategoriaConteudo == null) { throw new AcademicoException("A categoria não foi encontrada"); } new BMSolucaoEducacional().Salvar(solucaoEducacional); } else { ValidarCamposSolucaoEducacional(pDTOSolucaoEducacional); solucaoEducacional = PreencherObjetoSolucaoEducacional(pDTOSolucaoEducacional, pAutenticacao, solucaoEducacional); new BMSolucaoEducacional().Salvar(solucaoEducacional); } } catch (AcademicoException ex) { throw new AcademicoException(ex.Message); } catch (Exception ex) { ErroUtil.Instancia.TratarErro(ex); } }
public IQueryable <SolucaoEducacional> ObterSolucaoEducacionalPorFormaAquisicao(int idFormaAquisicao = 0, Uf uf = null) { using (var solEduBm = new BMSolucaoEducacional()) { var retorno = solEduBm.ObterTodos(); if (idFormaAquisicao > 0) { retorno = retorno.Where(s => s.FormaAquisicao.ID == idFormaAquisicao); } if (uf != null) { solEduBm.FiltrarPermissaoVisualizacao(ref retorno, uf.ID); } return(retorno); } }
public IQueryable <SolucaoEducacional> ObterSolucaoEducacionalPorFormaAquisicao(int formaAquisicaoId, Uf uf) { using (var seBm = new BMSolucaoEducacional()) { var retorno = seBm.ObterTodos(); if (formaAquisicaoId != 0) { retorno = retorno.Where(s => s.FormaAquisicao.ID == formaAquisicaoId); } if (uf != null) { seBm.FiltrarPermissaoVisualizacao(ref retorno, uf.ID); } return(retorno); } }
public IQueryable <SolucaoEducacional> ObterSolucaoEducacionalPorFormaAquisicao(Uf ufGestor = null, int pIdFormaAquisicao = 0) { using (var solEducBm = new BMSolucaoEducacional()) { var retorno = solEducBm.ObterTodos(); if (pIdFormaAquisicao != 0) { retorno = retorno.Where(s => s.FormaAquisicao.ID == pIdFormaAquisicao); } if (ufGestor != null) { solEducBm.FiltrarPermissaoVisualizacao(ref retorno, ufGestor.ID); } return(retorno); } }
public DTODisponibilidadeSolucaoEducacionalPorUsuarioT ConsultarDisponibilidadeMatriculaPorUsuario( int pIdUsuario, int?pagina) { var retorno = new DTODisponibilidadeSolucaoEducacionalPorUsuarioT(); var usuario = new ManterUsuario().ObterUsuarioPorID(pIdUsuario); new ManterMatriculaOferta().ObterPorUsuario(pIdUsuario); var listaPermissaoSolucaoEducacional = new BMSolucaoEducacional().ObterListaDePermissoes(usuario.ID, 0); var idsSolucoesPermissoes = listaPermissaoSolucaoEducacional.Select(f => f.SolucaoEducacional.ID).ToList(); var filtro = new SolucaoEducacional(); var recuperarListaSolucaoEducacional = new ManterSolucaoEducacional().ObterPorFiltroPesquisa(filtro, true, idsSolucoesPermissoes); const int skip = 5; var paginaAtual = (pagina.HasValue && pagina.Value > 0) ? (pagina.Value - 1) : 0; retorno.PaginaAtual = (paginaAtual + 1); retorno.QtdeSolucoes = recuperarListaSolucaoEducacional.Count(); retorno.QtdePaginas = Convert.ToInt32((retorno.QtdeSolucoes / skip)); if ((retorno.QtdeSolucoes % skip) > 0) { retorno.QtdePaginas++; } foreach (var item in recuperarListaSolucaoEducacional.Skip((paginaAtual * skip)).Take(skip).ToList()) { retorno.DTODisponibilidadeSolucaoEducacional.Add( ConsultarDisponibilidadeMatriculaSolucaoEducacional(pIdUsuario, item.ID)); } return(retorno); }
public DTOCursosPorCategoria ConsultarCursosPorCategoria(int idNoCategoriaConteudo, string cpf, string nome, bool somenteComInscricoesAbertas) { var retorno = new DTOCursosPorCategoria { Categoria = new DTOCategoriaConteudo(), ListaCursos = new List <DTOSolucaoEducacional>() }; var categoria = new BMCategoriaConteudo().ObterPorIdNode(idNoCategoriaConteudo); retorno.Categoria.ID = categoria.ID; retorno.Categoria.Nome = categoria.Nome; var usuario = new BMUsuario().ObterPorCPF(cpf); var permissoesSe = new BMSolucaoEducacional().ObterListaDePermissoes(usuario.ID, 0) .Select(x => x.SolucaoEducacional.ID) .ToList(); var permissoesOf = new BMOferta().ObterListaDePermissoes(usuario.ID).Select(x => x.IdOferta).ToList(); var solucoesEducacionais = new BMSolucaoEducacional().ObterTodos().AsEnumerable() .Where(x => x.Nome.ToLower().Contains(nome.ToLower()) && x.CategoriaConteudo != null && x.Ativo && x.CategoriaConteudo.IdNode == idNoCategoriaConteudo && //(x.IdNode.HasValue || !string.IsNullOrEmpty(x.Link)) && permissoesSe.Contains(x.ID) && x.ListaOferta != null && x.ListaOferta.Any(o => permissoesOf.Contains(o.ID)) && x.ListaOferta.Any(o => o.TipoOferta != enumTipoOferta.Exclusiva) ).ToList(); foreach (var item in solucoesEducacionais) { var obj = new DTOSolucaoEducacional { ID = item.ID, IDChaveExterna = item.IDChaveExterna, IdNode = item.IdNode, Nome = item.Nome, InscricoesAbertas = false }; if ( item.ListaOferta.Any( x => x.DataInicioInscricoes.HasValue && x.DataFimInscricoes.HasValue && x.DataInicioInscricoes.Value <= DateTime.Today && x.DataFimInscricoes.Value >= DateTime.Today)) { foreach (var oferta in item.ListaOferta) { if (string.IsNullOrEmpty(obj.Link)) { obj.Link = (item.Fornecedor.ID == (int)enumFornecedor.FGVOCW || item.Fornecedor.ID == (int)enumFornecedor.FGVSiga) && !string.IsNullOrEmpty(oferta.Link) ? oferta.Link : ""; } obj.InscricoesAbertas = oferta.ListaTurma.Any(x => x.DataInicio <= DateTime.Today && x.DataFinal.HasValue && x.DataFinal.Value >= DateTime.Today); } } else { obj.InscricoesAbertas = false; } bool adicionar = true; if (somenteComInscricoesAbertas) { adicionar = obj.InscricoesAbertas; } if (adicionar) { retorno.ListaCursos.Add(obj); } } return(retorno); }
/// <summary> /// Construtor da classe. Este construtor chama o construtor da classe base (BusinessProcessBase) /// </summary> public ManterSolucaoEducacional() : base() { bmSolucaoEducacional = new BMSolucaoEducacional(); }
public void ManterOfertaFornecedor(DTOManterOferta dtoOferta, AuthenticationProviderRequest pAutenticacao) { Fornecedor fornecedor = new BMFornecedor().ObterPorFiltro(new Fornecedor() { Login = pAutenticacao.Login }).FirstOrDefault(); try { this.RegistrarLogExecucaoFornecedor(fornecedor, "ManterOferta"); using (ofertaBM = new BMOferta()) { ValidarCamposObrigatoriosOferta(dtoOferta); SolucaoEducacional solucaoEducacional = new BMSolucaoEducacional().ObterSolucaoEducacionalPorFornecedor(pAutenticacao.Login, dtoOferta.IDChaveExternaSolucaoEducacional); if (solucaoEducacional == null) { throw new AcademicoException("Não foi possível encontrar a Solução Educacional"); } Oferta oferta = ofertaBM.ObterOfertaPorFornecedor(null, fornecedor.Login, dtoOferta.IDChaveExternaOferta, dtoOferta.IDChaveExternaSolucaoEducacional); if (oferta == null) { oferta = new Oferta(); oferta.IDChaveExterna = dtoOferta.IDChaveExternaOferta; oferta.SolucaoEducacional = solucaoEducacional; try { oferta.TipoOferta = (enumTipoOferta)Enum.Parse(typeof(enumTipoOferta), dtoOferta.TipoOferta.ToString()); } catch { throw new AcademicoException("Não foi possível encontrar o Tipo da Oferta"); } oferta.ListaMatriculaOferta = new List <MatriculaOferta>(); } else { if (!string.IsNullOrEmpty(dtoOferta.IDChaveExternaOfertaNova)) { oferta.IDChaveExterna = dtoOferta.IDChaveExternaOfertaNova; } } oferta.DataFimInscricoes = dtoOferta.DataFimInscricoes; oferta.DataInicioInscricoes = dtoOferta.DataInicioInscricoes; oferta.FiladeEspera = dtoOferta.FiladeEspera; oferta.InscricaoOnline = dtoOferta.InscricaoOnline; oferta.Nome = dtoOferta.NomedaOferta; if (dtoOferta.IdCertificado > 0) { oferta.CertificadoTemplate = new BMCertificadoTemplate().ObterPorID(dtoOferta.IdCertificado); } int codigoMoodle = 0; if (int.TryParse(dtoOferta.CodigoMoodle, out codigoMoodle)) { oferta.CodigoMoodle = codigoMoodle; } if (dtoOferta.QTDiasPrazo.HasValue) { oferta.DiasPrazo = dtoOferta.QTDiasPrazo.Value; } else { oferta.DiasPrazo = 30; } oferta.QuantidadeMaximaInscricoes = dtoOferta.QuantidadeMaximaInscricoes; oferta.Auditoria = new Auditoria(pAutenticacao.Login); oferta.CargaHoraria = dtoOferta.QTCargaHoraria; if (dtoOferta.ListaMatriculaAlunoOferta != null && dtoOferta.ListaMatriculaAlunoOferta.Count > 0) { var manterItemTrilhaParticipacao = new BP.ManterItemTrilhaParticipacao(); foreach (var dtoMatriculaSE in dtoOferta.ListaMatriculaAlunoOferta) { if (string.IsNullOrWhiteSpace(dtoMatriculaSE.Cpf)) { throw new AcademicoException("O CPF do aluno é obrigatório"); } if (string.IsNullOrWhiteSpace(dtoMatriculaSE.StatusMatricula)) { throw new AcademicoException("O status da matrícula do aluno é obrigatório"); } enumStatusMatricula statusMatricula; try { statusMatricula = (enumStatusMatricula)Enum.Parse(typeof(enumStatusMatricula), dtoMatriculaSE.StatusMatricula); } catch { throw new AcademicoException("Status da matrícula inválido"); } if (statusMatricula == enumStatusMatricula.CanceladoAdm || statusMatricula == enumStatusMatricula.CanceladoAluno) { continue; } MatriculaOferta matriculaOferta = null; Usuario usuario = null; if (dtoMatriculaSE.IdMatriculaOferta > 0) { matriculaOferta = oferta.ListaMatriculaOferta.Where(x => x.ID == dtoMatriculaSE.IdMatriculaOferta).FirstOrDefault(); usuario = matriculaOferta.Usuario; } else { matriculaOferta = new MatriculaOferta(); usuario = (new BMUsuario()).ObterPorCPF(dtoMatriculaSE.Cpf); if (usuario == null) { throw new AcademicoException("Não foi possível encontrar o aluno"); } matriculaOferta.Oferta = oferta; matriculaOferta.Usuario = usuario; matriculaOferta.UF = usuario.UF; matriculaOferta.NivelOcupacional = usuario.NivelOcupacional; } if (matriculaOferta.ID == 0) { //Criar Matricula Oferta matriculaOferta.StatusMatricula = statusMatricula; matriculaOferta.Auditoria = new Auditoria(pAutenticacao.Login); matriculaOferta.DataSolicitacao = dtoMatriculaSE.DataSolicitacao; matriculaOferta.DataStatusMatricula = dtoMatriculaSE.DataStatusMatricula; matriculaOferta.LinkAcesso = dtoMatriculaSE.LinkAcesso; matriculaOferta.LinkCertificado = dtoMatriculaSE.LinkCertificado; if (!string.IsNullOrWhiteSpace(dtoMatriculaSE.IDChaveExternaTurma)) { //Criar matricula Turma Turma turma = new BMTurma().ObterTurmaPorFornecedor(fornecedor.Login, dtoMatriculaSE.IDChaveExternaTurma); if (turma != null) { MatriculaTurma matriculaTurma = new MatriculaTurma() { Turma = turma, MatriculaOferta = matriculaOferta, DataMatricula = dtoMatriculaSE.DataMatriculaTurma.Value, DataLimite = dtoMatriculaSE.DataLimite.Value, Nota1 = dtoMatriculaSE.Nota1, Nota2 = dtoMatriculaSE.Nota2, MediaFinal = dtoMatriculaSE.MediaFinal, ValorNotaProvaOnline = dtoMatriculaSE.NotaOnline, Auditoria = new Auditoria(pAutenticacao.Login), }; if (matriculaOferta.MatriculaTurma == null) { matriculaOferta.MatriculaTurma = new List <MatriculaTurma>(); } matriculaOferta.MatriculaTurma.Add(matriculaTurma); } } } else { //Alterar Dados da Matricula Oferta bool terminou = false; if (matriculaOferta.StatusMatricula != statusMatricula && (statusMatricula == enumStatusMatricula.Aprovado || statusMatricula == enumStatusMatricula.Concluido)) { terminou = true; } matriculaOferta.StatusMatricula = statusMatricula; matriculaOferta.DataStatusMatricula = dtoMatriculaSE.DataStatusMatricula; matriculaOferta.LinkAcesso = dtoMatriculaSE.LinkAcesso; matriculaOferta.LinkCertificado = dtoMatriculaSE.LinkCertificado; matriculaOferta.Auditoria = new Auditoria(pAutenticacao.Login); //matriculaOferta.DataSolicitacao = dtoMatriculaSE.DataSolicitacao; if (!string.IsNullOrWhiteSpace(dtoMatriculaSE.IDChaveExternaTurma)) { if (matriculaOferta.MatriculaTurma != null && matriculaOferta.MatriculaTurma.Count > 0) { matriculaOferta.MatriculaTurma[0].DataMatricula = dtoMatriculaSE.DataMatriculaTurma.Value; matriculaOferta.MatriculaTurma[0].DataLimite = dtoMatriculaSE.DataLimite.Value; matriculaOferta.MatriculaTurma[0].Nota1 = dtoMatriculaSE.Nota1; matriculaOferta.MatriculaTurma[0].Nota2 = dtoMatriculaSE.Nota2; matriculaOferta.MatriculaTurma[0].MediaFinal = dtoMatriculaSE.MediaFinal; matriculaOferta.MatriculaTurma[0].ValorNotaProvaOnline = dtoMatriculaSE.NotaOnline; if (terminou) { matriculaOferta.MatriculaTurma[0].DataTermino = DateTime.Now; manterItemTrilhaParticipacao.AtualizarStatusParticipacoesTrilhas(matriculaOferta); } matriculaOferta.MatriculaTurma[0].Auditoria = new Auditoria(pAutenticacao.Login); } else { Turma turma = new BMTurma().ObterTurmaPorFornecedor(fornecedor.Login, dtoMatriculaSE.IDChaveExternaTurma); if (turma != null) { MatriculaTurma matriculaTurma = new MatriculaTurma() { Turma = turma, MatriculaOferta = matriculaOferta, DataMatricula = dtoMatriculaSE.DataMatriculaTurma.Value, DataLimite = dtoMatriculaSE.DataLimite.Value, Nota1 = dtoMatriculaSE.Nota1, Nota2 = dtoMatriculaSE.Nota2, MediaFinal = dtoMatriculaSE.MediaFinal, ValorNotaProvaOnline = dtoMatriculaSE.NotaOnline, Auditoria = new Auditoria(pAutenticacao.Login) }; if (matriculaOferta.MatriculaTurma == null) { matriculaOferta.MatriculaTurma = new List <MatriculaTurma>(); } matriculaOferta.MatriculaTurma.Add(matriculaTurma); } } } } if (matriculaOferta.ID == 0) { oferta.ListaMatriculaOferta.Add(matriculaOferta); } } } if (oferta.ID != 0) { ofertaBM.EvictOferta(oferta); } ofertaBM.Salvar(oferta); } } catch (AcademicoException ex) { throw new AcademicoException(ex.Message); } catch (Exception ex) { ErroUtil.Instancia.TratarErro(ex); } }
private void ValidarMetaIndividual(int pUsuario, int pSolucaoEducacional, List <int> pListaIdMetaIndividualAssociada, AuthenticationRequest autenticacao) { try { MetaIndividual mi = null; if (pListaIdMetaIndividualAssociada != null && pListaIdMetaIndividualAssociada.Count > 0) { foreach (int IdMetaIndividualAssociada in pListaIdMetaIndividualAssociada) { using (BMMetaIndividual miBM = new BMMetaIndividual()) mi = miBM.ObterPorID(IdMetaIndividualAssociada); if (!mi.ListaItensMetaIndividual.Any(x => x.SolucaoEducacional.ID == pSolucaoEducacional)) { mi.ListaItensMetaIndividual.Add(new ItemMetaIndividual() { Auditoria = new Auditoria(autenticacao.Login), MetaIndividual = new BMMetaIndividual().ObterPorID(mi.ID), SolucaoEducacional = new BMSolucaoEducacional().ObterPorId(pSolucaoEducacional), }); using (BMMetaIndividual miBM = new BMMetaIndividual()) miBM.Salvar(mi); } } SolucaoEducacional se = null; using (BMSolucaoEducacional seBM = new BMSolucaoEducacional()) se = seBM.ObterPorId(pSolucaoEducacional); Usuario user = null; using (BMUsuario userBM = new BMUsuario()) { user = userBM.ObterPorId(pUsuario); } bool listaAlterada = false; foreach (var tagSe in se.ListaTags) { if (!user.ListaTag.Any(x => x.Tag.ID == tagSe.ID)) { user.ListaTag.Add(new UsuarioTag() { Usuario = user, Auditoria = new Auditoria(autenticacao.Login), Tag = new BMTag().ObterPorID(tagSe.Tag.ID), DataValidade = mi.DataValidade, Adicionado = false }); listaAlterada = true; } } if (listaAlterada) { using (BMUsuario userBM = new BMUsuario()) userBM.Salvar(user); } } } catch { //TODO: Verificar se cabe alguma ação } }
public IList <DTOSolucEducFormaAquisicao> ConsultarSolucaoEducacional(int pUsuario, int pFornecedor, int pFormaAquisicao) { solucaoEducacionalBM = new BMSolucaoEducacional(); IList <SolucaoEducacional> lstSolEduc = solucaoEducacionalBM.ConsultarSolucaoEducacionalWebServices(pUsuario, pFornecedor, pFormaAquisicao); IList <FormaAquisicao> lstFormaAquisicao = (from fa in lstSolEduc select fa.FormaAquisicao).ToList(); IList <DTOSolucEducFormaAquisicao> lstResult = new List <DTOSolucEducFormaAquisicao>(); foreach (FormaAquisicao fa in lstFormaAquisicao) { DTOSolucEducFormaAquisicao dtofa = new DTOSolucEducFormaAquisicao() { Nome = fa.Nome, CodigoFormaAquisicao = fa.ID, ListaSolucaoEducacional = new List <DTOSolucEducSolucaoEducacional>() }; IList <SolucaoEducacional> lstSolEducFA = (from se in lstSolEduc where se.FormaAquisicao.ID == fa.ID select se).ToList(); foreach (SolucaoEducacional se in lstSolEducFA) { MatriculaOferta mo = (from of in (new BMOferta()).ObterPorFiltro(new Oferta() { SolucaoEducacional = se }) select of.ListaMatriculaOferta).FirstOrDefault().Where(x => x.StatusMatricula != enumStatusMatricula.CanceladoAdm && x.StatusMatricula != enumStatusMatricula.CanceladoAluno) .OrderByDescending(x => x.DataSolicitacao).FirstOrDefault(); DTOSolucEducSolucaoEducacional dtoSE = new DTOSolucEducSolucaoEducacional() { CodigoSolucaoEducacional = se.ID, Nome = se.Nome, SolucaoEducacionalMatricula = mo == null ? null : (new DTOSolucEducSolucaoEducacionalMatricula() { DataSolicitacao = mo.DataSolicitacao, StatusMatricula = mo.StatusMatricula.ToString() }) }; dtofa.ListaSolucaoEducacional.Add(dtoSE); } lstResult.Add(dtofa); } return(lstResult); }
public void MatricularSolucaoEducacional(int idUsuario, int idSolucaoEducacional, int idOferta, List <int> pListaIdMetaIndividualAssociada, List <int> pListaIdMetaInstitucionalAssociada, AuthenticationRequest autenticacao) { Usuario userSelected = new BMUsuario().ObterPorId(idUsuario); SolucaoEducacional solucaoEducacional = new BMSolucaoEducacional().ObterPorId(idSolucaoEducacional); BMMatriculaOferta moBM = new BMMatriculaOferta(); if (solucaoEducacional == null) { throw new AcademicoException("Solução Educacional não encontrada"); } //VALIDAR SE ELE TEM ALGUMA OFERTA EXCLUSIVA PENDENTE DE CONFIRMACAO if (userSelected.ListaMatriculaOferta.Any(x => x.Oferta.ID == idOferta && x.Oferta.SolucaoEducacional.ID == idSolucaoEducacional && x.StatusMatricula == enumStatusMatricula.PendenteConfirmacaoAluno && x.Oferta.DataFim.Value.Date >= DateTime.Now.Date)) { MatriculaOferta mo = userSelected.ListaMatriculaOferta.Where(x => x.Oferta.SolucaoEducacional.ID == idSolucaoEducacional && x.StatusMatricula == enumStatusMatricula.PendenteConfirmacaoAluno).FirstOrDefault(); if (mo != null) { mo.StatusMatricula = enumStatusMatricula.Inscrito; mo.Auditoria = new Auditoria(autenticacao.Login); moBM.Salvar(mo); ValidarMetaIndividual(idUsuario, idSolucaoEducacional, pListaIdMetaIndividualAssociada, autenticacao); ValidarMetaInstitucional(idUsuario, idSolucaoEducacional, pListaIdMetaInstitucionalAssociada, autenticacao); if (!(mo.MatriculaTurma != null && mo.MatriculaTurma.Count > 0)) { try { if (mo.Oferta.TipoOferta.Equals(enumTipoOferta.Continua)) { string retornows; switch (mo.Oferta.SolucaoEducacional.Fornecedor.ID) { case (int)enumFornecedor.MoodleSebrae: moodle.IntegracaoSoapClient soapCliente = new moodle.IntegracaoSoapClient(); retornows = soapCliente.MatricularAluno( userSelected.Nome, userSelected.CPF, userSelected.Email, userSelected.Cidade, mo.Oferta.SolucaoEducacional.IDChaveExterna.ToString(), mo.MatriculaTurma.FirstOrDefault().Turma.IDChaveExterna.ToString()); break; case (int)enumFornecedor.WebAula: Turma turma = mo.MatriculaTurma.FirstOrDefault().Turma; webaula.waIntegracaoSoapClient wa = new webaula.waIntegracaoSoapClient(); webaula.AuthenticationProviderRequest aut = new webaula.AuthenticationProviderRequest(); webaula.DTOUsuario dtoUsuario = new webaula.DTOUsuario(); webaula.DTOTurma dtoTurma = new webaula.DTOTurma(); dtoTurma.IDChaveExterna = turma.IDChaveExterna; dtoUsuario.CPF = userSelected.CPF; dtoUsuario.Email = userSelected.Email; dtoUsuario.Nome = userSelected.Nome; dtoUsuario.Sexo = userSelected.Sexo; dtoUsuario.UF = userSelected.UF.Sigla; aut.Login = mo.Oferta.SolucaoEducacional.Fornecedor.Login; aut.Senha = CriptografiaHelper.Decriptografar(mo.Oferta.SolucaoEducacional.Fornecedor.Senha); retornows = wa.Matricular(aut, dtoUsuario, dtoTurma); break; } } } catch (Exception ex) { ErroUtil.Instancia.TratarErro(ex); } } if (!string.IsNullOrEmpty(mo.Usuario.Email)) { Template mensagemRecuperacaoDeSenhaSemConfirmacao = TemplateUtil.ObterInformacoes(enumTemplate.InscricaoSESucesso); string assuntoDoEmail = mensagemRecuperacaoDeSenhaSemConfirmacao.DescricaoTemplate.Substring(0, mensagemRecuperacaoDeSenhaSemConfirmacao.DescricaoTemplate.IndexOf(Environment.NewLine)); Dictionary <string, string> registros = new Dictionary <string, string>(); registros.Add("NOMESOLUCAOEDUCACIONAL", mo.Oferta.SolucaoEducacional.Nome); registros.Add("DATASISTEMA", DateTime.Now.ToString("dd'/'MM'/'yyyy HH:mm")); registros.Add("NOMEALUNO", mo.Usuario.Nome); //Envia e-mail para o usuário EmailUtil.Instancia.EnviarEmail(mo.Usuario.Email, assuntoDoEmail, this.FormatarTextoEmail(registros, mensagemRecuperacaoDeSenhaSemConfirmacao.DescricaoTemplate) ); } return; } } //Verificando se existe alguma matricula na SE. MatriculaOferta buscaMatricula = new MatriculaOferta(); buscaMatricula.Usuario = new Usuario(); buscaMatricula.Usuario.ID = userSelected.ID; List <MatriculaOferta> possiveisMatriculas = new BMMatriculaOferta().ObterPorFiltro(buscaMatricula).ToList(); if (possiveisMatriculas != null && possiveisMatriculas.Any(y => y.Oferta.SolucaoEducacional.ID == idSolucaoEducacional && !(y.StatusMatricula == enumStatusMatricula.CanceladoAdm || y.StatusMatricula == enumStatusMatricula.CanceladoAluno))) { throw new AcademicoException("Erro: O usuário já está matriculado em uma oferta desta Solução Educacional"); } //VALIDAR SE O USUARIO POSSUI ACESSO A SE bool usuarioPossuiPermissao = new BMSolucaoEducacional().VerificarSeUsuarioPossuiPermissao(idUsuario, solucaoEducacional.ID); // .ObterListaUsuariosPermitidos(); if (!usuarioPossuiPermissao) { throw new AcademicoException("Erro: O usuário Informado não possui permissão à Solução Educacional"); } //VALIDAR SE O USUARIO ESTA CURSANDO OUTRA SE if (userSelected.ListaMatriculaOferta.Any(y => y.Usuario.ID == userSelected.ID && y.StatusMatricula == enumStatusMatricula.Inscrito)) { throw new AcademicoException("Erro: O usuário já está inscrito em outra oferta."); } //VALIDAR SE O USUARIO ESTA COM ALGUM ABANDONO ATIVO if (new BMUsuarioAbandono().ValidarAbandonoAtivo(idUsuario)) { throw new AcademicoException("Erro: Existe um abandono registrado para este usuário!"); } Oferta oferta = new Oferta(); oferta = solucaoEducacional.ListaOferta.FirstOrDefault(x => x.ID == idOferta); if (oferta == null) { throw new AcademicoException("Erro: Oferta não encontrada"); } //VALIDADO OFERTA CONTINUA. if (oferta.TipoOferta.Equals(enumTipoOferta.Continua)) { Turma t = null; if (oferta.SolucaoEducacional.Fornecedor.PermiteGestaoSGUS) { t = oferta.ListaTurma.FirstOrDefault(x => x.DataFinal == null || x.DataFinal.Value.Date >= DateTime.Now.Date && x.InAberta); } int qtdInscritosNaOferta = oferta.ListaMatriculaOferta.Where(x => (x.StatusMatricula != enumStatusMatricula.CanceladoAdm && x.StatusMatricula != enumStatusMatricula.CanceladoAluno)).Count(); MatriculaOferta matriculaOferta = new MatriculaOferta() { Oferta = new BMOferta().ObterPorId(oferta.ID), Usuario = new BMUsuario().ObterPorId(userSelected.ID), Auditoria = new Auditoria(autenticacao.Login), DataSolicitacao = DateTime.Now, UF = new BMUf().ObterPorId(userSelected.UF.ID), NivelOcupacional = new BMNivelOcupacional().ObterPorID(userSelected.NivelOcupacional.ID) }; if (qtdInscritosNaOferta >= oferta.QuantidadeMaximaInscricoes) { if (oferta.FiladeEspera) { matriculaOferta.StatusMatricula = enumStatusMatricula.FilaEspera; } else { throw new AcademicoException("Erro: A quantidade máxima de alunos foi atingida"); } } else { matriculaOferta.StatusMatricula = enumStatusMatricula.Inscrito; } qtdInscritosNaOferta++; if (t != null) { MatriculaTurma matriculaTurma = new MatriculaTurma() { Turma = new BMTurma().ObterPorID(t.ID), Auditoria = new Auditoria(autenticacao.Login), DataMatricula = DateTime.Now, MatriculaOferta = matriculaOferta, DataLimite = DateTime.Today.AddDays(oferta.DiasPrazo) }; if (matriculaOferta.MatriculaTurma == null) { matriculaOferta.MatriculaTurma = new List <MatriculaTurma>(); } matriculaOferta.MatriculaTurma.Add(matriculaTurma); } moBM.Salvar(matriculaOferta); //validando se a turma já está chegando ao limite. if (qtdInscritosNaOferta > (oferta.QuantidadeMaximaInscricoes - int.Parse(ConfiguracaoSistemaUtil.ObterInformacoes(enumConfiguracaoSistema.LimiteAlertaInscricaoOferta).Registro))) { EnviarEmailLimiteOferta(oferta, matriculaOferta); } ValidarMetaIndividual(idUsuario, idSolucaoEducacional, pListaIdMetaIndividualAssociada, autenticacao); ValidarMetaInstitucional(idUsuario, idSolucaoEducacional, pListaIdMetaInstitucionalAssociada, autenticacao); try { if (matriculaOferta.Oferta.TipoOferta.Equals(enumTipoOferta.Continua) && matriculaOferta.MatriculaTurma != null) { string retornows; switch (matriculaOferta.Oferta.SolucaoEducacional.Fornecedor.ID) { case (int)enumFornecedor.MoodleSebrae: moodle.IntegracaoSoapClient soapCliente = new moodle.IntegracaoSoapClient(); retornows = soapCliente.MatricularAluno(userSelected.Nome, userSelected.CPF, userSelected.Email, userSelected.Cidade, matriculaOferta.Oferta.SolucaoEducacional.IDChaveExterna.ToString(), matriculaOferta.MatriculaTurma.FirstOrDefault().Turma.IDChaveExterna.ToString()); break; case (int)enumFornecedor.WebAula: Turma turma = matriculaOferta.MatriculaTurma.FirstOrDefault().Turma; webaula.waIntegracaoSoapClient wa = new webaula.waIntegracaoSoapClient(); webaula.AuthenticationProviderRequest aut = new webaula.AuthenticationProviderRequest(); webaula.DTOUsuario dtoUsuario = new webaula.DTOUsuario(); webaula.DTOTurma dtoTurma = new webaula.DTOTurma(); dtoTurma.IDChaveExterna = turma.IDChaveExterna; dtoUsuario.CPF = userSelected.CPF; dtoUsuario.Email = userSelected.Email; dtoUsuario.Nome = userSelected.Nome; dtoUsuario.Sexo = userSelected.Sexo; dtoUsuario.UF = userSelected.UF.Sigla; aut.Login = matriculaOferta.Oferta.SolucaoEducacional.Fornecedor.Login; aut.Senha = CriptografiaHelper.Decriptografar(matriculaOferta.Oferta.SolucaoEducacional.Fornecedor.Senha); retornows = wa.Matricular(aut, dtoUsuario, dtoTurma); break; } } } catch (Exception ex) { ErroUtil.Instancia.TratarErro(ex); } return; } //VALIDANDO A OFETA NORMAL if (oferta.TipoOferta.Equals(enumTipoOferta.Normal)) { int qtdInscritosNaOferta = oferta.ListaMatriculaOferta.Where(x => (x.StatusMatricula != enumStatusMatricula.CanceladoAdm && x.StatusMatricula != enumStatusMatricula.CanceladoAluno)).Count(); MatriculaOferta matriculaOferta = new MatriculaOferta() { Oferta = new BMOferta().ObterPorId(oferta.ID), Usuario = new BMUsuario().ObterPorId(userSelected.ID), Auditoria = new Auditoria(autenticacao.Login), DataSolicitacao = DateTime.Now, UF = new BMUf().ObterPorId(userSelected.UF.ID), NivelOcupacional = new BMNivelOcupacional().ObterPorID(userSelected.NivelOcupacional.ID) }; if (qtdInscritosNaOferta >= oferta.QuantidadeMaximaInscricoes) { if (oferta.FiladeEspera) { matriculaOferta.StatusMatricula = enumStatusMatricula.FilaEspera; } else { throw new AcademicoException("Erro: A quantidade máxima de alunos foi atingida"); } } else { matriculaOferta.StatusMatricula = enumStatusMatricula.Inscrito; } BMMatriculaOferta bmMatriculaOferta = new BMMatriculaOferta(); bmMatriculaOferta.Salvar(matriculaOferta); qtdInscritosNaOferta++; //validando se a turma já está chegando ao limite. if (qtdInscritosNaOferta > (oferta.QuantidadeMaximaInscricoes - int.Parse(ConfiguracaoSistemaUtil.ObterInformacoes(enumConfiguracaoSistema.LimiteAlertaInscricaoOferta).Registro))) { EnviarEmailLimiteOferta(oferta, matriculaOferta); } ValidarMetaIndividual(idUsuario, idSolucaoEducacional, pListaIdMetaIndividualAssociada, autenticacao); ValidarMetaInstitucional(idUsuario, idSolucaoEducacional, pListaIdMetaInstitucionalAssociada, autenticacao); return; } throw new Exception("Não foi encontrado ofertas para esse usuário!"); }
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); }