private PkUsuarioConversa GetUsuarioParaConversa(string tipoDeUsuario, int codigoDoUsuario) { PkUsuarioConversa usuarioConversa = new PkUsuarioConversa(); if (TipoDeUsuarioDoChatTrata.EhAluno(tipoDeUsuario)) { usuarioConversa = this._alunosRepository.GetAlunoParaConversa(codigoDoUsuario).Content; } else if (TipoDeUsuarioDoChatTrata.EhCoordenadorOuProfessor(tipoDeUsuario)) { usuarioConversa = this._cadforpsRepository.GetProfessorOuCoordenadorParaConversa(codigoDoUsuario) .Content; } else if (TipoDeUsuarioDoChatTrata.EhResponsavel(tipoDeUsuario)) { usuarioConversa = this._pessoasRepository.GetResponsavelParaConversa(codigoDoUsuario).Content; } return(usuarioConversa); }
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); }