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);
        }
Exemple #2
0
 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);
 }
Exemple #3
0
 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);
 }
Exemple #4
0
 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);
 }