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);
        }
Exemple #3
0
        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();
        }
Exemple #4
0
        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);
        }
Exemple #5
0
        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;
        }
Exemple #6
0
        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;
        }
Exemple #7
0
        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;
        }
Exemple #8
0
 public TodoApi(TodoDbContext db)
 {
     _db = db;
 }
Exemple #9
0
 public async Task Post(Todo todo, [FromServices] TodoDbContext db)
 {
     db.Todos.Add(todo);
     await db.SaveChangesAsync();
 }
Exemple #10
0
        public async Task <ActionResult <List <Todo> > > GetAll([FromServices] TodoDbContext db)
        {
            var todos = await db.Todos.ToListAsync();

            return(todos);
        }
Exemple #11
0
        public async Task GetAllAsync(TodoDbContext db, HttpContext context)
        {
            var todos = await db.Todos.ToListAsync();

            await context.Response.WriteJsonAsync(todos, _options);
        }
Exemple #12
0
 public TodoController(TodoDbContext db)
 {
     _db = db ?? throw new ArgumentNullException(nameof(db));
 }