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); }
public ActionResult Pesquisar(FerramentasDoBlogViewModel viewModel) { var requisicao = new ListarPostsRequisicao { PaginaAtual = 1, QuantidadeDePosts = 10, TermoDePesquisa = viewModel.TermoDePesquisa }; var listarPostsApresentador = new ListarPostsApresentador(); listarPostsExecutor.Apresentador = listarPostsApresentador; listarPostsExecutor.Executar(requisicao); var obterNumeroDePaginasDePostApresentador = new ObterNumeroDePaginasDePostApresentador(); this.obterNumeroDePaginasDePostExecutor.Apresentador = obterNumeroDePaginasDePostApresentador; this.obterNumeroDePaginasDePostExecutor.Executar(); var blogViewModel = new BlogViewModel(); blogViewModel.Posts = listarPostsApresentador.Posts; blogViewModel.QuantidadeDePaginas = obterNumeroDePaginasDePostApresentador.NumeroDePaginas; return View("Index", blogViewModel); }
public PartialViewResult Posts(int paginaAtual) { var requisicao = new ListarPostsRequisicao { PaginaAtual = paginaAtual, QuantidadeDePosts = 5 }; var listarPostsApresentador = new ListarPostsApresentador(); listarPostsExecutor.Apresentador = listarPostsApresentador; listarPostsExecutor.Executar(requisicao); return PartialView("Posts", listarPostsApresentador.Posts); }
public ActionResult ListarPostsPorTag(string tag) { var requisicao = new ListarPostsRequisicao { Tag = tag }; var listarPostsApresentador = new ListarPostsApresentador(); listarPostsExecutor.Apresentador = listarPostsApresentador; listarPostsExecutor.Executar(requisicao); var obterNumeroDePaginasDePostApresentador = new ObterNumeroDePaginasDePostApresentador(); this.obterNumeroDePaginasDePostExecutor.Apresentador = obterNumeroDePaginasDePostApresentador; this.obterNumeroDePaginasDePostExecutor.Executar(); var blogViewModel = new BlogViewModel(); blogViewModel.Posts = listarPostsApresentador.Posts; blogViewModel.QuantidadeDePaginas = obterNumeroDePaginasDePostApresentador.NumeroDePaginas; return View("Index", blogViewModel); }