public List <ChatProfess> GetMensagens(PkUsuarioConversa conversa, int codigoDaPrimeiraMensagemNoChat = 0) { this._usuarioLogado.GetUsuarioLogado(); return(this._chatProfessRepository.GetMensagens( codigoDoUsuario1: this._usuarioLogado.Codigo, tipoDoUsuario1: this._usuarioLogado.TipoDeUsuario, codigoDoUsuario2: conversa.Codigo, tipoDoUsuario2: conversa.Tipo, codigoDaPrimeiraMensagemNoChat: codigoDaPrimeiraMensagemNoChat).Content); }
public SaeResponseRepository <PkUsuarioConversa> GetAlunoParaConversa(int codigoDoAluno) { PkUsuarioConversa alunos = this._db .Alunos .Where(x => codigoDoAluno == x.Codigo) .Select(aluno => new PkUsuarioConversa { Nome = aluno.Nome, Foto = aluno.Foto, Status = TipoDeUsuarioDoChatTrata.Aluno, Codigo = aluno.Codigo, Tipo = TipoDeUsuarioDoChatTrata.Aluno }).FirstOrDefault(); return(new SaeResponseRepository <PkUsuarioConversa>(true, alunos)); }
public SaeResponseRepository <PkUsuarioConversa> GetProfessorOuCoordenadorParaConversa(int codigo) { PkUsuarioConversa professoresECoordenadores = this._db .Cadforps .Where(x => x.Tipo == TipoDeUsuarioDoChatTrata.Professor && x.Codigo == codigo && x.Situacao == SaeSituacao.Ativo) .Select(cadforps => new PkUsuarioConversa { Nome = cadforps.Nome, Foto = cadforps.Foto, Status = cadforps.Tipo, Codigo = cadforps.Codigo, Tipo = cadforps.Tipo }) .FirstOrDefault(); return(new SaeResponseRepository <PkUsuarioConversa>(true, professoresECoordenadores)); }
public SaeResponseRepository <PkUsuarioConversa> GetResponsavelParaConversa(int codigo) { PkUsuarioConversa responsaveis = this._db .Pessoas .Where(x => x.Codigo == codigo) .Select(aluno => new PkUsuarioConversa { Nome = aluno.Nome, Foto = aluno.Foto, Status = TipoDeUsuarioDoChatTrata.ResponsavelExtenso, Codigo = aluno.Codigo, Tipo = TipoDeUsuarioDoChatTrata.Responsavel }) .FirstOrDefault(); return(new SaeResponseRepository <PkUsuarioConversa>(true, responsaveis)); }
public JsonResult GetMensagens(string groupName, int codigoDaPrimeiraMensagemNoChat) { this._groupBuilder.DismantleGroupName(groupName, out int codigoDoCliente, out string tipoDeUsuario, out int codigoDoUsuario); PkUsuarioConversa usuarioParaConversa = this.GetUsuarioParaConversa(tipoDeUsuario, codigoDoUsuario); List <ChatProfess> mensagens = this._chatDomain.GetMensagens(usuarioParaConversa, codigoDaPrimeiraMensagemNoChat); PkConversa conversa = new PkConversa( usuario: usuarioParaConversa, mensagensDoUsuario: mensagens, codigoDoCliente: codigoDoCliente, groupBuilder: this._groupBuilder, deveOrdenar: false); return(this.Json(new SaeResponse { Status = true, Content = conversa })); }
public JsonResult GetUsuarioParaConversa(string groupName) { this._groupBuilder.DismantleGroupName(groupName, out int codigoDoCliente, out string tipoDeUsuario, out int codigoDoUsuario); PkUsuarioConversa usuarioConversa = this.GetUsuarioParaConversa(tipoDeUsuario, codigoDoUsuario); int codigoDaEscola = this._saeHelperCookie.GetCookie(ECookie.CodigoDoCliente).ConvertToInt32(); List <ChatProfess> mensagens = this._chatDomain.GetMensagens(usuarioConversa); PkConversa conversa = new PkConversa(usuarioConversa, mensagens, codigoDaEscola, this._groupBuilder); return(this.Json(new SaeResponse { Status = true, Content = conversa })); }
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); }
private List <PkUsuarioConversa> GetResponsaveis(int codigoDoCurso, string fase, int codigoDoCliente) { List <PkUsuarioConversa> responsaveisParaRetorno = new List <PkUsuarioConversa>(); var alunoComResponsaveis = (from historicoDoAluno in this._db.Histalu.Where(x => x.Nseqc == codigoDoCurso && x.Fase == fase && x.Resultado == ResultadoCursos.Cursando) join aluno in this._db.Alunos on historicoDoAluno.CodAluh equals aluno.Codigo join rf in this._db.Pessoas on historicoDoAluno.CodRespfi equals rf.Codigo into rfJoin from responsavelFinanceiro in rfJoin.DefaultIfEmpty() join p in this._db.Pessoas on aluno.CodPai equals p.Codigo into pJoin from pai in pJoin.DefaultIfEmpty() join m in this._db.Pessoas on aluno.CodMae equals m.Codigo into mJoin from mae in mJoin.DefaultIfEmpty() join rp in this._db.Pessoas on aluno.CodResppe equals rp.Codigo into rpJoin from responsavelPedagogico in rpJoin.DefaultIfEmpty() select new { codigoDoAluno = aluno.Codigo, nomeDoAluno = aluno.Nome, codigoDoResponsavelFinanceiro = (int?)responsavelFinanceiro.Codigo, nomeDoResponsavelFinanceiro = responsavelFinanceiro.Nome, fotoDoResponsavelFinanceiro = responsavelFinanceiro.Foto, codigoDoPai = (int?)pai.Codigo, nomeDoPai = pai.Nome, fotoDoPai = pai.Foto, codigoDaMae = (int?)mae.Codigo, nomeDaMae = mae.Nome, fotoDaMae = mae.Foto, codigoDoResponsavelPedagogico = (int?)responsavelPedagogico.Codigo, nomeDoResponsavelPedagogico = responsavelPedagogico.Nome, fotoDoResponsavelPedagogico = responsavelPedagogico.Foto, }).ToList(); foreach (var aluno in alunoComResponsaveis) { string codigoEPrimeiroEUltimoNomeDoAluno = $"{aluno.codigoDoAluno} - {aluno.nomeDoAluno.GetPrimeiroEUltimoNome()}"; List <PkUsuarioConversa> responsaveisDoAluno = new List <PkUsuarioConversa>(); if (!SaeUtil.IsNullOrZero(aluno.codigoDoResponsavelFinanceiro)) { PkUsuarioConversa responsavelFinanceiro = new PkUsuarioConversa { Codigo = aluno.codigoDoResponsavelFinanceiro ?? 0, Tipo = TipoDeUsuarioDoChatTrata.Responsavel, CodigoDoCliente = codigoDoCliente, Foto = aluno.fotoDoResponsavelFinanceiro, Nome = aluno.nomeDoResponsavelFinanceiro, Status = $"Resp. Fin. do(a) {codigoEPrimeiroEUltimoNomeDoAluno}" }; responsaveisDoAluno.Add(responsavelFinanceiro); } if (!SaeUtil.IsNullOrZero(aluno.codigoDoPai)) { PkUsuarioConversa pai = new PkUsuarioConversa { Codigo = aluno.codigoDoPai ?? 0, Tipo = TipoDeUsuarioDoChatTrata.Responsavel, CodigoDoCliente = codigoDoCliente, Foto = aluno.fotoDoPai, Nome = aluno.nomeDoPai, Status = $"Pai do(a) {codigoEPrimeiroEUltimoNomeDoAluno}" }; responsaveisDoAluno.Add(pai); } if (!SaeUtil.IsNullOrZero(aluno.codigoDaMae)) { PkUsuarioConversa mae = new PkUsuarioConversa { Codigo = aluno.codigoDaMae ?? 0, Tipo = TipoDeUsuarioDoChatTrata.Responsavel, CodigoDoCliente = codigoDoCliente, Foto = aluno.fotoDaMae, Nome = aluno.nomeDaMae, Status = $"Mãe do(a) {codigoEPrimeiroEUltimoNomeDoAluno}" }; responsaveisDoAluno.Add(mae); } if (!SaeUtil.IsNullOrZero(aluno.codigoDoResponsavelPedagogico)) { PkUsuarioConversa responsavelPedagogico = new PkUsuarioConversa { Codigo = aluno.codigoDoResponsavelPedagogico ?? 0, Tipo = TipoDeUsuarioDoChatTrata.Responsavel, CodigoDoCliente = codigoDoCliente, Foto = aluno.fotoDoResponsavelPedagogico, Nome = aluno.nomeDoResponsavelPedagogico, Status = $"Resp. Ped. do(a) {codigoEPrimeiroEUltimoNomeDoAluno}" }; responsaveisDoAluno.Add(responsavelPedagogico); } if (responsaveisDoAluno.Any()) { var responsaveisAgrupados = responsaveisDoAluno.GroupBy(x => x.Codigo, (codigo, responsaveisIguais) => { //Guardei numa lista para evitar múltipla enumeração List <PkUsuarioConversa> responsaveisIguaisList = responsaveisIguais.ToList(); var relacoes = responsaveisIguaisList .Select(x => x.Status.Split(" do(a)").FirstOrDefault()); string relacoesJuntasESeparadasPorVirgula = string.Join(", ", relacoes); var primeiroIndice = responsaveisIguaisList.FirstOrDefault(); string nomeDoAluno = primeiroIndice.Status.Split("do(a)").LastOrDefault(); var responsavelTemporario = new PkUsuarioConversa { Codigo = codigo, Tipo = TipoDeUsuarioDoChatTrata.Responsavel, CodigoDoCliente = codigoDoCliente, Foto = primeiroIndice.Foto, Nome = primeiroIndice.Nome, Status = $"{relacoesJuntasESeparadasPorVirgula} do(a) {nomeDoAluno}" }; return(responsavelTemporario); }).ToList(); responsaveisParaRetorno.AddRange(responsaveisAgrupados); } } return(responsaveisParaRetorno); }