public void Apresentar(ListarPostsResultado resultado)
 {
     UltimosCincoPostsResumidos = from p in resultado.Posts.OrderByDescending(p => p.Data).Take(5)
                                  select new PostResumidoViewModel
                                  {
                                      CaminhoDaImagemDaCapa = p.CaminhoDaImagemDaCapa,
                                      Conteudo = p.Conteudo.Substring(0, Math.Min(150, p.Conteudo.Length)) + "...",
                                      Tags = String.Join(", ", p.Tags),
                                      DataPorExtenso = p.Data.ToString("MMMM dd, yyyy", CultureInfo.CurrentCulture),
                                      Titulo = p.Titulo,
                                      Url = p.Url
                                  };
 }
 public void Apresentar(ListarPostsResultado resultado)
 {
     Posts = from p in resultado.Posts
                      select new PostResumidoViewModel
                      {
                          Codigo = p.Codigo,
                          CaminhoDaImagemDaCapa = p.CaminhoDaImagemDaCapa,
                          Conteudo = p.Conteudo.Substring(0, Math.Min(400, p.Conteudo.Length)) + "...",
                          Tags = String.Join(", ", p.Tags),
                          DataPorExtenso = p.Data.ToString("MMMM dd, yyyy", CultureInfo.CurrentCulture),
                          Titulo = p.Titulo,
                          Url = p.Url
                      };
 }
        public void Apresentar(ListarPostsResultado resultado)
        {
            var postsDoMes = (from p in resultado.Posts
                              group p by new
                              {
                                  Mes = p.Data.Month,
                                  Ano = p.Data.Year,
                              } into pdm
                              let posts = pdm.Select(p => p)
                              select new PostPorMesEAno
                              {
                                  Ano = pdm.Key.Ano,
                                  Mes = pdm.Key.Mes,
                                  QuantidadeDePosts = posts.Count(),
                                  Posts = posts.Select(p => new Post { Titulo = p.Titulo, UrlParaDetalhar = p.Url }).ToList()
                              }).OrderByDescending(p => p.Ano).ThenByDescending(p => p.Mes);

            Arvore.PostsAgrupadosPorMesEAno = postsDoMes.ToList();
        }
示例#4
0
        public void Executar(ListarPostsRequisicao requisicao)
        {
            var resultado = new ListarPostsResultado();
            var posts = Enumerable.Empty<Post>();

            bool listarPorTag = !String.IsNullOrWhiteSpace(requisicao.Tag);
            bool listarComPaginacao = requisicao.PaginaAtual.HasValue && requisicao.QuantidadeDePosts.HasValue;
            bool listarTodos = !listarPorTag && !listarComPaginacao;

            if (listarPorTag)
            {
                posts = ListarPorTag(requisicao.Tag);
            }

            if (listarComPaginacao)
            {
                posts = ListarComPaginacao(requisicao.PaginaAtual.Value, requisicao.QuantidadeDePosts.Value, requisicao.TermoDePesquisa);
            }

            if(listarTodos)
            {
                posts = ListarTodos();
            }

            resultado.Posts = from p in posts
                              select new ListarPostsResultado.Post
                              {
                                  Codigo = p.Codigo,
                                  CaminhoDaImagemDaCapa = p.CaminhoDaImagemDaCapa,
                                  Conteudo = p.Conteudo,
                                  Tags = p.Tags,
                                  Titulo = p.Titulo,
                                  Data = p.Data,
                                  Url = p.Url
                              };

            Apresentador.Apresentar(resultado);
        }