using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; using Api.Models; namespace Api.Controllers { [Route("api/[controller]/posts")] [ApiController] public class ItemsController : ControllerBase { private readonly Context _context; public ItemsController(Context context) { _context = context; } // GET: api/Items [HttpGet] public async Task>> GetItems() { return await _context.Items.ToListAsync(); } // GET: api/Items/5 [HttpGet("{id}")] public async Task> GetItem(long id) { var item = await _context.Items.FindAsync(id); if (item == null) { return NotFound(); } return item; } // PUT: api/Items/5 // To protect from overposting attacks, see https://go.microsoft.com/fwlink/?linkid=2123754 [HttpPut("{id}")] public async Task PutItem(long id, Item item) { if (id != item.Id) { return BadRequest(); } _context.Entry(item).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!ItemExists(id)) { return NotFound(); } else { throw; } } return NoContent(); } // POST: api/Items // To protect from overposting attacks, see https://go.microsoft.com/fwlink/?linkid=2123754 [HttpPost] public async Task> PostItem(Item item) { _context.Items.Add(item); await _context.SaveChangesAsync(); return CreatedAtAction("GetItem", new { id = item.Id }, item); } // DELETE: api/Items/5 [HttpDelete("{id}")] public async Task DeleteItem(long id) { var item = await _context.Items.FindAsync(id); if (item == null) { return NotFound(); } _context.Items.Remove(item); await _context.SaveChangesAsync(); return NoContent(); } private bool ItemExists(long id) { return _context.Items.Any(e => e.Id == id); } } }