using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Authorization; using Microsoft.EntityFrameworkCore; using rockfishCore.Models; namespace rockfishCore.Controllers { [Produces("application/json")] [Route("api/Product")] [Authorize] public class ProductController : Controller { private readonly rockfishContext _context; public ProductController(rockfishContext context) { _context = context; } // GET: api/Product [HttpGet] public IEnumerable GetProduct() { return _context.Product; } // GET: api/Product/5 [HttpGet("{id}")] public async Task GetProduct([FromRoute] long id) { if (!ModelState.IsValid) { return BadRequest(ModelState); } var Product = await _context.Product.SingleOrDefaultAsync(m => m.Id == id); if (Product == null) { return NotFound(); } return Ok(Product); } // PUT: api/Product/5 [HttpPut("{id}")] public async Task PutProduct([FromRoute] long id, [FromBody] Product Product) { if (!ModelState.IsValid) { return BadRequest(ModelState); } if (id != Product.Id) { return BadRequest(); } _context.Entry(Product).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!ProductExists(id)) { return NotFound(); } else { throw; } } return NoContent(); } // POST: api/Product [HttpPost] public async Task PostProduct([FromBody] Product Product) { if (!ModelState.IsValid) { return BadRequest(ModelState); } _context.Product.Add(Product); await _context.SaveChangesAsync(); return CreatedAtAction("GetProduct", new { id = Product.Id }, Product); } // DELETE: api/Product/5 [HttpDelete("{id}")] public async Task DeleteProduct([FromRoute] long id) { if (!ModelState.IsValid) { return BadRequest(ModelState); } var Product = await _context.Product.SingleOrDefaultAsync(m => m.Id == id); if (Product == null) { return NotFound(); } _context.Product.Remove(Product); await _context.SaveChangesAsync(); return Ok(Product); } private bool ProductExists(long id) { return _context.Product.Any(e => e.Id == id); } } }