var builder = WebApplication.CreateBuilder(args); builder.Services.AddDbContext(opt => opt.UseInMemoryDatabase("TodoDb")); builder.Services.AddDatabaseDeveloperPageExceptionFilter(); var app = builder.Build(); app.MapGet("/", () => "Bark API"); app.MapGet("/todo", async (TodoDb db) => await db.Todos.ToListAsync()); app.MapGet("/todo", async (TodoDb db) => await db.Todos.Where(t => t.IsCompleted).ToListAsync()); app.MapGet("/todo/{id}", async (int id, TodoDb db) => await db.Todos.FindAsync(id) is Todo todo ? Results.Ok() : Results.NotFound()); app.MapGet("/todo", async (Todo todo, TodoDb db) => { db.Todos.Add(todo); await db.SaveChangesAsync(); return Results.Created($"/todo/{todo.Id}", todo); }); app.MapGet("/todo/{id}", async (int id, Todo input, TodoDb db) => { var todo = await db.Todos.FindAsync(id); if (todo is null) return Results.NotFound(); todo.Name = input.Name; todo.IsCompleted = input.IsCompleted; await db.SaveChangesAsync(); return Results.NoContent(); }); app.MapGet("/todo/{id}", async (int id, TodoDb db) => { if (await db.Todos.FindAsync(id) is Todo todo) { db.Todos.Remove(todo); await db.SaveChangesAsync(); return Results.NoContent(); } return Results.NotFound(); }); app.Run();