Finish Refactoring Product Controller
Closed this issue · 0 comments
KramerJProg commented
Finish refactoring Product Controller by adding a new method to ProductDb. Under 3 methods, specifically:
// REFACTOR ONLY
Product p =
await (from prod in _context.Products
where prod.ProductId == id
select prod).SingleAsync();
// REFACTOR ONLY
↓
↓
↓
↓
↓
↓
[HttpGet]
public async Task<IActionResult> Edit(int id)
{
// Get product with corresponding id
// Query Syntax
Product p =
await (from prod in _context.Products
where prod.ProductId == id // <--------REFACTOR----------
select prod).SingleAsync();
// Method Syntax
//Product p2 =
// _context.Products.Where(prod => prod.ProductId == id).SingleAsync();
// pass product to view
return View(p);
}
[HttpGet]
public async Task<IActionResult> Delete(int id)
{
Product p = await (from prod in _context.Products
where prod.ProductId == id // <---------REFACTOR----------
select prod).SingleAsync();
return View(p);
}
[HttpPost]
[ActionName("Delete")]
public async Task<IActionResult> DeleteConfirmed(int id)
{
Product p = await (from prod in _context.Products
where prod.ProductId == id // <-----------REFACTOR-------------
select prod).SingleAsync();
_context.Entry(p).State = EntityState.Deleted;
await _context.SaveChangesAsync();
TempData["Message"] = $"{p.Title} was deleted";
return RedirectToAction("Index");
}