コード例 #1
0
        public List <PkConversa> GetMensagensDoUsuario(int codigoDoUsuario, string tipoDoUsuario)
        {
            List <ChatProfess> mensagens =
                this._chatProfessRepository.GetMensagensDoUsuario(codigoDoUsuario, tipoDoUsuario);

            PkCodigosDasPessoasDasMensagens codigosETipos = this
                                                            .GetCodigosDosUsuariosDasMensagens(mensagens)
                                                            .RemoverUsuarioLogado(codigoDoUsuario, tipoDoUsuario);

            int codigoDaEscola = this._helperCookie.GetCookie(ECookie.CodigoDoCliente).ConvertToInt32();

            List <PkUsuarioConversa> usuariosDasConversas = new List <PkUsuarioConversa>();
            List <PkConversa>        conversas            = new List <PkConversa>();

            if (codigosETipos.CodigosDosAlunos.Any())
            {
                List <PkUsuarioConversa> alunos = this._alunosRepository.GetAlunosDasConversas(codigosETipos.CodigosDosAlunos).Content;
                usuariosDasConversas.AddRange(alunos);
            }

            if (codigosETipos.CodigosDosCoordenadores.Any() || codigosETipos.CodigosDosProfessores.Any())
            {
                List <PkUsuarioConversa> coordenadoresEProfessores = this._cadforpsRepository.GetProfessoresECoordenadoresDasConversas(
                    codigosETipos.CodigosDosCoordenadores, codigosETipos.CodigosDosProfessores).Content;
                usuariosDasConversas.AddRange(coordenadoresEProfessores);
            }

            if (codigosETipos.CodigosDosResponsaveis.Any())
            {
                List <PkUsuarioConversa> responsaveis = this._pessoasRepository
                                                        .GetResponsaveisDasConversas(codigosETipos.CodigosDosResponsaveis).Content;
                usuariosDasConversas.AddRange(responsaveis);
            }

            if (usuariosDasConversas.Any())
            {
                foreach (PkUsuarioConversa usuario in usuariosDasConversas)
                {
                    List <ChatProfess> mensagensDoUsuario =
                        mensagens.Where(mensagem => usuario.MensagemEhDesteUsuario(mensagem)).ToList();

                    conversas.Add(new PkConversa(usuario, mensagensDoUsuario, codigoDaEscola, this._groupBuilder));
                }
            }

            conversas = conversas.OrderByDescending(x => x.GetDataDaUltimaMensagem()).ToList();
            return(conversas);
        }
コード例 #2
0
        private PkCodigosDasPessoasDasMensagens GetCodigosDosUsuariosDasMensagens(List <ChatProfess> mensagens)
        {
            PkCodigosDasPessoasDasMensagens codigosETipos = new PkCodigosDasPessoasDasMensagens();

            TipoDeUsuarioDoChatTrata.GetTipos().ForEach(tipo =>
            {
                codigosETipos
                .Add(this.GetDestinatariosDoTipo(mensagens, tipo), tipo)
                .Add(this.GetOrigensDoTipo(mensagens, tipo), tipo);
            });

            codigosETipos.CodigosDosAlunos        = codigosETipos.CodigosDosAlunos.Distinct().ToList();
            codigosETipos.CodigosDosCoordenadores = codigosETipos.CodigosDosCoordenadores.Distinct().ToList();
            codigosETipos.CodigosDosProfessores   = codigosETipos.CodigosDosProfessores.Distinct().ToList();
            codigosETipos.CodigosDosResponsaveis  = codigosETipos.CodigosDosResponsaveis.Distinct().ToList();

            return(codigosETipos);
        }