public PkMensagem(ChatProfess mensagem, GroupBuilder groupBuilder, int codigoDoCliente)
 {
     this.Id = mensagem.Id;
     this.GroupNameOrigem  = groupBuilder.BuildGroupName(codigoDoCliente, mensagem.TipoOrigem, mensagem.IdOrigem.ConvertToInt32());
     this.GroupNameDestino = groupBuilder.BuildGroupName(codigoDoCliente, mensagem.TipoDestino, mensagem.IdDestino.ConvertToInt32());
     this.Texto            = mensagem.TextMens;
     this.DataDaMensagem   = mensagem.DtMensagem ?? DateTime.MinValue;
     this.Lida             = mensagem.Lido ?? false;
     this.DataDeLeitura    = mensagem.DtQleu;
 }
        public PkConversa(PkUsuarioConversa usuario, List <ChatProfess> mensagensDoUsuario, int codigoDoCliente, GroupBuilder groupBuilder, bool deveOrdenar = true)
        {
            this.Codigo = usuario.Codigo;
            this.Nome   = usuario.Nome.GetPrimeiroEUltimoNome();
            this.Foto   = FotoTrata.ToBase64String(usuario.Foto);
            this.Status = usuario.Status;
            this.Tipo   = usuario.Tipo;
            if (this.Status == this.Tipo)
            {
                this.Status = TipoDeUsuarioDoChatTrata.TipoExtenso(this.Tipo);
            }

            this.CodigoDaEscola = codigoDoCliente;
            this.GroupName      = groupBuilder.BuildGroupName(codigoDoCliente, usuario.Tipo, usuario.Codigo);
            this.Mensagens      = mensagensDoUsuario
                                  .Select(mensagem => new PkMensagem(mensagem, groupBuilder, codigoDoCliente))
                                  .ToList();

            if (deveOrdenar)
            {
                this.Mensagens = this.Mensagens
                                 .OrderBy(x => x.DataDaMensagem)
                                 .ToList();
            }

            this.SetDataDaUltimaMensagem();
        }