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(); }
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); }