Olá fiz exatamente como esta na video aula só que recebo pagina 404 na Rota Livros/Teste mas Cadastro/Teste funciona, segue o codigo.
Startup.cs
using Alura.ListaLeitura.App.Logica;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Routing;
using Microsoft.Extensions.DependencyInjection;
namespace Alura.ListaLeitura.App
{
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddRouting();
services.AddMvc();
}
public void Configure(IApplicationBuilder app)
{
app.UseMvcWithDefaultRoute();
}
}
}
LivrosLogica.cs
using Alura.ListaLeitura.App.HTML;
using Alura.ListaLeitura.App.Negocio;
using Alura.ListaLeitura.App.Repositorio;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Routing;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Alura.ListaLeitura.App.Logica
{
public class LivrosController
{
private static string CarregaLista(IEnumerable<Livro> livros)
{
var conteudoArquivo = HtmlUtils.CarregaArquivoHTML("lista");
foreach (var livro in livros)
{
conteudoArquivo = conteudoArquivo
.Replace("#NOVO-ITEM#", $"<li>{livro.Titulo} - {livro.Autor}</li>#NOVO-ITEM#");
}
return conteudoArquivo.Replace("#NOVO-ITEM#", "");
}
public static Task ParaLer(HttpContext context)
{
var _repo = new LivroRepositorioCSV();
var html = CarregaLista(_repo.ParaLer.Livros);
return context.Response.WriteAsync(html);
}
public static Task Lendo(HttpContext context)
{
var _repo = new LivroRepositorioCSV();
var html = CarregaLista(_repo.Lendo.Livros);
return context.Response.WriteAsync(html);
}
public static Task Lidos(HttpContext context)
{
var _repo = new LivroRepositorioCSV();
var html = CarregaLista(_repo.Lidos.Livros);
return context.Response.WriteAsync(html);
}
public static Task Detalhes(HttpContext context)
{
int id = Convert.ToInt32(context.GetRouteValue("id"));
var repo = new LivroRepositorioCSV();
var livro = repo.Todos.First(l => l.Id == id);
return context.Response.WriteAsync(livro.Detalhes());
}
}
}
CadastroLogica.cs
using Alura.ListaLeitura.App.HTML;
using Alura.ListaLeitura.App.Negocio;
using Alura.ListaLeitura.App.Repositorio;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Routing;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Alura.ListaLeitura.App.Logica
{
public class CadastroController
{
public static Task Incluir(HttpContext context)
{
var livro = new Livro()
{
Titulo = context.Request.Form["titulo"].First(),
Autor = context.Request.Form["autor"].First(),
};
var repo = new LivroRepositorioCSV();
repo.Incluir(livro);
return context.Response.WriteAsync("O livro foi adicionado com sucesso");
}
public static Task ExibeFormulario(HttpContext context)
{
var html = HtmlUtils.CarregaArquivoHTML("formulario");
return context.Response.WriteAsync(html);
}
public static Task NovoLivro(HttpContext context)
{
var livro = new Livro()
{
Titulo = Convert.ToString(context.GetRouteValue("nome")),
Autor = Convert.ToString(context.GetRouteValue("autor")),
};
var repo = new LivroRepositorioCSV();
repo.Incluir(livro);
return context.Response.WriteAsync("O livro foi adicionado com sucesso");
}
public string Teste()
{
return "Nova funcionalidade implementada.";
}
}
}
Url que funciona: http://localhost:5000/Cadastro/Teste, Url que não Funciona: http://localhost:5000/Livros/Teste