public IActionResult Put(int id, [FromBody] Product product) { if (product == null || id != product.Id) { return(BadRequest()); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (!ProductExists(id)) { return(NotFound()); } var existing = ECommDataContext.Products.SingleOrDefault(p => p.Id == id); try { existing.ProductName = product.ProductName; existing.UnitPrice = product.UnitPrice; existing.Package = product.Package; existing.IsDiscontinued = product.IsDiscontinued; existing.SupplierId = product.SupplierId; ECommDataContext.SaveChanges(); } catch (DbUpdateException) { return(StatusCode(StatusCodes.Status409Conflict)); } catch (Exception) { return(StatusCode(StatusCodes.Status500InternalServerError)); } return(Ok(existing)); }
public IActionResult Post([FromBody] Product product) { if (product == null) { return(BadRequest()); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (ProductExists(product.Id)) { return(StatusCode(StatusCodes.Status409Conflict)); } try { ECommDataContext.Products.Add(product); ECommDataContext.SaveChanges(); } catch (DbUpdateException) { return(StatusCode(StatusCodes.Status409Conflict)); } catch (Exception) { return(StatusCode(StatusCodes.Status500InternalServerError)); } return(CreatedAtAction("Get", new { id = product.Id }, product)); }
private ECommDataContext CreateStubContext() { var optionsBuilder = new DbContextOptionsBuilder <ECommDataContext>(); optionsBuilder.UseInMemoryDatabase("TestDb"); var context = new ECommDataContext(optionsBuilder.Options); // Add sample data context.Products.Add(new Product { Id = 1, ProductName = "Milk", UnitPrice = 2.50M }); context.Products.Add(new Product { Id = 2, ProductName = "Bread", UnitPrice = 3.25M, SupplierId = 1 }); context.Products.Add(new Product { Id = 3, ProductName = "Juice", UnitPrice = 5.75M }); context.Suppliers.Add(new Supplier { Id = 1, CompanyName = "Acme" }); context.SaveChanges(); return(context); }
public IActionResult Delete(int id) { if (!ProductExists(id)) { return(NotFound()); } var existing = ECommDataContext.Products.SingleOrDefault(p => p.Id == id); try { ECommDataContext.Remove(existing); ECommDataContext.SaveChanges(); } catch (DbUpdateException) { return(StatusCode(StatusCodes.Status409Conflict)); } catch (Exception) { return(StatusCode(StatusCodes.Status500InternalServerError)); } return(Ok(existing)); }
public HomeController(ECommDataContext dataContext) { _dataContext = dataContext; }
public ProductController(ECommDataContext dataContext) { _dataContext = dataContext; }
public ProductList(ECommDataContext dataContext) { _dataContext = dataContext; }