public async Task DeleteAsync(TodoDbContext db, HttpContext context) { if (!context.Request.RouteValues.TryGet("id", out int id)) { context.Response.StatusCode = 400; return; } var todo = await db.Todos.FindAsync(id); if (todo == null) { context.Response.StatusCode = 404; return; } db.Todos.Remove(todo); await db.SaveChangesAsync(); }
static async Task GetTodo(HttpContext context) { if (!context.Request.RouteValues.TryGet("id", out int id)) { context.Response.StatusCode = 400; return; } using var db = new TodoDbContext(); var todo = await db.Todos.FindAsync(id); if (todo == null) { context.Response.StatusCode = 404; return; } await context.Response.WriteAsJsonAsync(todo); }
public async Task DeleteAsync(TodoDbContext db, HttpContext context) { var id = (string)context.Request.RouteValues["id"]; if (id == null || !long.TryParse(id, out var todoId)) { context.Response.StatusCode = StatusCodes.Status400BadRequest; return; } var todo = await db.Todos.FindAsync(todoId); if (todo == null) { context.Response.StatusCode = StatusCodes.Status404NotFound; return; } db.Todos.Remove(todo); await db.SaveChangesAsync(); }
public async Task GetAsync(TodoDbContext db, HttpContext context) { var id = (string)context.Request.RouteValues["id"]; if (id == null || !long.TryParse(id, out var todoId)) { context.Response.StatusCode = StatusCodes.Status400BadRequest; return; } var todo = await db.Todos.FindAsync(todoId); if (todo == null) { context.Response.StatusCode = StatusCodes.Status404NotFound; return; } context.Response.ContentType = "application/json"; await JsonSerializer.SerializeAsync(context.Response.Body, todo, _options); }
static async Task UpdateTodos(HttpContext context) { var todos = await context.Request.ReadJsonAsync <IEnumerable <Todo> >(); using var db = new TodoDbContext(); var others = await db.Todos.ToListAsync(); var toRemove = others.Except(todos); db.Todos.RemoveRange(toRemove); var toAdd = todos.Except(others); await db.Todos.AddRangeAsync(toAdd); var toUpdate = todos.Intersect(others); await db.SaveChangesAsync(); context.Response.StatusCode = 204; }
static async Task DeleteTodo(HttpContext context) { if (!context.Request.RouteValues.TryGet("id", out int id)) { context.Response.StatusCode = 400; return; } using var db = new TodoDbContext(); var todo = await db.Todos.FindAsync(id); if (todo == null) { context.Response.StatusCode = 404; return; } db.Todos.Remove(todo); await db.SaveChangesAsync(); context.Response.StatusCode = 204; }
static async Task UpdateAndAdd(HttpContext context) { if (!context.Request.RouteValues.TryGet("id", out int id)) { context.Response.StatusCode = 400; return; } using var db = new TodoDbContext(); var updateTodo = await db.Todos.FindAsync(id); updateTodo.Name = $"Update Task at {DateTime.Now}"; var newTodo = new Todo { Name = "New task" }; db.Add(newTodo); await db.SaveChangesAsync(); context.Response.StatusCode = 200; }
public TodoApi(TodoDbContext db) { _db = db; }
public async Task Post(Todo todo, [FromServices] TodoDbContext db) { db.Todos.Add(todo); await db.SaveChangesAsync(); }
public async Task <ActionResult <List <Todo> > > GetAll([FromServices] TodoDbContext db) { var todos = await db.Todos.ToListAsync(); return(todos); }
public async Task GetAllAsync(TodoDbContext db, HttpContext context) { var todos = await db.Todos.ToListAsync(); await context.Response.WriteJsonAsync(todos, _options); }
public TodoController(TodoDbContext db) { _db = db ?? throw new ArgumentNullException(nameof(db)); }