Ejemplo n.º 1
0
        public IActionResult Index()
        {
            this._usuarioLogado.GetUsuarioLogado();

            List <PkHabilitacaoProfessor> habilitacoes = new List <PkHabilitacaoProfessor>();
            bool ehProfessorOuCoordenador = this._usuarioLogado.EhProfessorOuCoordenador();

            if (ehProfessorOuCoordenador)
            {
                string anoLetivo = this._historicoRepository.GetAnoLetivo().Content;
                habilitacoes = this._profHabilitaRepository
                               .GetHabilitacoes(codigoDoProfessor: this._usuarioLogado.Codigo, anoLetivo: anoLetivo)
                               .Content
                               .DistinctBy(x => new { x.CodigoDoCurso, x.Fase })
                               .ToList();
            }

            PesquisaContatosIndexModel model = new PesquisaContatosIndexModel(
                ehProfessorOuCoordenador: ehProfessorOuCoordenador,
                listaDeCursosHabilitados: habilitacoes,
                usuarioLogado: this._usuarioLogado);
            string view = this
                          ._viewRenderService
                          .RenderToString(this, "Index", model);

            return(this.Json(new SaeResponse(view)));
        }
 private void ExtraiCodigoECursoSelecionado(PesquisaContatosIndexModel index, out int codigoDoCurso, out string fase)
 {
     if (this._usuarioLogado.EhProfessorOuCoordenador())
     {
         string[] cursoEFase = index.CursoEFase.Split('-');
         codigoDoCurso = cursoEFase.FirstOrDefault().ConvertToInt32();
         fase          = cursoEFase.LastOrDefault();
     }
     else
     {
         codigoDoCurso = 0;
         fase          = string.Empty;
     }
 }
Ejemplo n.º 3
0
        public JsonResult AtualizarLista(PesquisaContatosIndexModel index)
        {
            this._usuarioLogado.GetUsuarioLogado();
            List <PkUsuarioConversa> usuarios = this._pesquisarContatosDomain.Get(index);

            bool ehProfessorOuCoordenador = this._usuarioLogado.EhProfessorOuCoordenador();

            PesquisaContatosListaModel model = new PesquisaContatosListaModel(
                usuarios: usuarios,
                ehProfessorOuCoordenador: ehProfessorOuCoordenador);
            string view = this
                          ._viewRenderService
                          .RenderToString(this, "_Lista", model);

            return(this.Json(new SaeResponse(view)));
        }
        public List <PkUsuarioConversa> Get(PesquisaContatosIndexModel index)
        {
            List <PkUsuarioConversa> listaParaRetorno = new List <PkUsuarioConversa>();

            this._usuarioLogado.GetUsuarioLogado();
            int    codigoDoUsuarioLogado = this._usuarioLogado.Codigo;
            string tipoDeUsuarioLogado   = this._usuarioLogado.TipoDeUsuario;
            int    codigoDoCliente       = this._saeHelperCookie.GetCookie(ECookie.CodigoDoCliente).ConvertToInt32();

            this.ExtraiCodigoECursoSelecionado(index, out int codigoDoCurso, out string fase);
            List <PkUsuarioConversa> professores   = new List <PkUsuarioConversa>();
            List <PkUsuarioConversa> coordenadores = new List <PkUsuarioConversa>();
            List <PkUsuarioConversa> alunos        = new List <PkUsuarioConversa>();
            List <PkUsuarioConversa> responsaveis  = new List <PkUsuarioConversa>();
            bool ehAluno                  = TipoDeUsuarioDoChatTrata.EhAluno(tipoDeUsuarioLogado);
            bool ehResponsavel            = TipoDeUsuarioDoChatTrata.EhResponsavel(tipoDeUsuarioLogado);
            bool ehCoordenadorOuProfessor = TipoDeUsuarioDoChatTrata.EhCoordenadorOuProfessor(tipoDeUsuarioLogado);

            List <string> tiposSelecionados = index.TiposSelecionados;

            if (ehAluno)
            {
                if (this._usuarioLogado.Permissoes.ConversaComAluno                 //&&
                    /*tiposSelecionados.Contains(TipoDeUsuarioDoChatTrata.Aluno)*/)
                {
                    PkHistoricoDoAluno ultimoHistoricoDoAluno = this.GetUltimoHistoricoDoAluno(codigoDoUsuarioLogado);
                    if (ultimoHistoricoDoAluno != null)
                    {
                        alunos =
                            this.GetAlunos(
                                ultimoHistoricoDoAluno.CodigoDoCurso,
                                ultimoHistoricoDoAluno.Fase,
                                codigoDoCliente)
                            .Where(x => x.Codigo != codigoDoUsuarioLogado)
                            .ToList();
                    }
                }
                if (this._usuarioLogado.Permissoes.ConversaComCoordenador                 //&&
                    /*tiposSelecionados.Contains(TipoDeUsuarioDoChatTrata.Coordenador)*/)
                {
                    PkHistoricoDoAluno ultimoHistoricoDoAluno = this.GetUltimoHistoricoDoAluno(codigoDoUsuarioLogado);
                    coordenadores = this.GetProfessoresOuCoordenadores(ultimoHistoricoDoAluno,
                                                                       TipoDeUsuarioDoChatTrata.Coordenador, codigoDoCliente);
                }
                if (this._usuarioLogado.Permissoes.ConversaComProfessor                 //&&
                    /*tiposSelecionados.Contains(TipoDeUsuarioDoChatTrata.Professor)*/)
                {
                    PkHistoricoDoAluno ultimoHistoricoDoAluno = this.GetUltimoHistoricoDoAluno(codigoDoUsuarioLogado);
                    professores = this.GetProfessoresOuCoordenadores(ultimoHistoricoDoAluno,
                                                                     TipoDeUsuarioDoChatTrata.Professor, codigoDoCliente);
                }
                if (this._usuarioLogado.Permissoes.ConversaComResponsavel &&
                    tiposSelecionados.Contains(TipoDeUsuarioDoChatTrata.Responsavel))
                {
                    //não vai fazer por enquanto
                }
            }
            else if (ehResponsavel)
            {
                if (this._usuarioLogado.Permissoes.ConversaComAluno                 //&&
                    /*tiposSelecionados.Contains(TipoDeUsuarioDoChatTrata.Aluno)*/)
                {
                    //não vai fazer por enquanto
                }

                PkHistoricoDoAluno historicoDoAlunoRelacionado = this.GetUltimoHistoricoDoAluno(this._usuarioLogado.RelacaoComAluno.CodigoDoAluno);
                if (this._usuarioLogado.Permissoes.ConversaComCoordenador                 //&&
                    /*tiposSelecionados.Contains(TipoDeUsuarioDoChatTrata.Coordenador)*/)
                {
                    coordenadores = this.GetProfessoresOuCoordenadores(historicoDoAlunoRelacionado, TipoDeUsuarioDoChatTrata.Coordenador, codigoDoCliente);
                }
                if (this._usuarioLogado.Permissoes.ConversaComProfessor                 //&&
                    /*tiposSelecionados.Contains(TipoDeUsuarioDoChatTrata.Professor)*/)
                {
                    professores = this.GetProfessoresOuCoordenadores(historicoDoAlunoRelacionado, TipoDeUsuarioDoChatTrata.Professor, codigoDoCliente);
                }
                if (this._usuarioLogado.Permissoes.ConversaComResponsavel                 //&&
                    /*tiposSelecionados.Contains(TipoDeUsuarioDoChatTrata.Responsavel)*/)
                {
                    responsaveis = this.GetResponsaveis(historicoDoAlunoRelacionado.CodigoDoCurso,
                                                        historicoDoAlunoRelacionado.Fase, codigoDoCliente)
                                   .Where(x => x.Codigo != codigoDoUsuarioLogado)
                                   .ToList();
                }
            }
            else if (ehCoordenadorOuProfessor)
            {
                if (this._usuarioLogado.Permissoes.ConversaComAluno                 //&&
                    /*tiposSelecionados.Contains(TipoDeUsuarioDoChatTrata.Aluno)*/)
                {
                    alunos = this.GetAlunos(codigoDoCurso, fase, codigoDoCliente).ToList();
                }
                if (this._usuarioLogado.Permissoes.ConversaComCoordenador                 //&&
                    /*tiposSelecionados.Contains(TipoDeUsuarioDoChatTrata.Coordenador)*/)
                {
                    coordenadores = this.GetProfessoresOuCoordenadores(codigoDoCurso, fase,
                                                                       TipoDeUsuarioDoChatTrata.Coordenador, codigoDoCliente)
                                    .Where(x => x.Codigo != codigoDoUsuarioLogado)
                                    .ToList();
                }
                if (this._usuarioLogado.Permissoes.ConversaComProfessor                 //&&
                    /*tiposSelecionados.Contains(TipoDeUsuarioDoChatTrata.Professor)*/)
                {
                    professores = this.GetProfessoresOuCoordenadores(codigoDoCurso, fase,
                                                                     TipoDeUsuarioDoChatTrata.Professor, codigoDoCliente)
                                  .Where(x => x.Codigo != codigoDoUsuarioLogado)
                                  .ToList();
                }
                if (this._usuarioLogado.Permissoes.ConversaComResponsavel                 //&&
                    /*tiposSelecionados.Contains(TipoDeUsuarioDoChatTrata.Responsavel)*/)
                {
                    responsaveis = this.GetResponsaveis(codigoDoCurso, fase, codigoDoCliente);
                }
            }

            listaParaRetorno.AddRange(professores);
            listaParaRetorno.AddRange(coordenadores);
            listaParaRetorno.AddRange(alunos);
            listaParaRetorno.AddRange(responsaveis);

            listaParaRetorno = this.SetUltimaVezLogado(listaParaRetorno);

            listaParaRetorno = listaParaRetorno
                               .OrderBy(x => x.Nome)
                               .ThenBy(x => x.Tipo)
                               .ToList();

            return(listaParaRetorno);
        }