public static MvcHtmlString PageLinks(this HtmlHelper html, Paginacao paginacao, Func <int, string> paginaUrl)
        {
            StringBuilder resultado = new StringBuilder();

              for (int i = 1; i < paginacao.TotalPaginas; i++)
              {
              TagBuilder tag = new TagBuilder("a");
              tag.MergeAttribute("href", paginaUrl(i));
              tag.InnerHtml = i.ToString();

              if (i == paginacao.PaginaAtual)
              {
                  tag.AddCssClass("selected");
                  tag.AddCssClass("btn-primary");

              }
              tag.AddCssClass("btn btn-default");
              resultado.Append(tag);
              }

              return MvcHtmlString.Create(resultado.ToString());
        }
        public void TestarSeaPaginacaoEstaSendoGeradaCorretamente()
        {
            //Arrange
            HtmlHelper html = null;
            Paginacao paginacao = new Paginacao
            {
                PaginaAtual = 2,
                ItensPorPagina = 10,
                ItensTotal = 28
            };

            Func<int, string> paginaUrl = i => "Pagina" + i;

            //Act
            MvcHtmlString resultado = html.PageLinks(paginacao, paginaUrl);

            //Assert
            Assert.AreEqual(
                             @"<a class=  btn btn-default  href = Pagina1 >1</a>"
                            + @"<a class= btn btn-default btn-primary selected  href= Pagina2 >2</a>"
                            + @"<a class= btn btn-default href= Pagina3 >3</a>", resultado.ToString());
        }