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 LivrosLogica {
public static Task ExibeDetalhes(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());
}
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 LivrosParaLer(HttpContext context)
{
var _repo = new LivroRepositorioCSV();
var html = CarregaLista(_repo.ParaLer.Livros);
return context.Response.WriteAsync(html);
}
public static Task LivrosLendo(HttpContext context)
{
var _repo = new LivroRepositorioCSV();
var html = CarregaLista(_repo.ParaLer.Livros);
return context.Response.WriteAsync(html);
}
public static Task LivrosLidos(HttpContext context)
{
var _repo = new LivroRepositorioCSV();
var html = CarregaLista(_repo.ParaLer.Livros);
return context.Response.WriteAsync(html);
}
}
}
A parte de Cadastro de um novo livro funciona corretamente e mostra a mensagem de que o livro foi cadastrado com sucesso, mas quando tento imprimir na tela a lista, aparece o erro 505. Já comparei meu código com o do projeto original e não consigo identificar o erro. Também já tentei a opção de Copiar para diretório de saída, sem sucesso.