110 lines
2.2 KiB
C#
110 lines
2.2 KiB
C#
|
using System.Data;
|
||
|
using Microsoft.AspNetCore.Mvc;
|
||
|
using Microsoft.EntityFrameworkCore;
|
||
|
using MyDarling.Models;
|
||
|
|
||
|
namespace MyDarling.Controllers
|
||
|
{
|
||
|
public class BundleController : Controller
|
||
|
{
|
||
|
private DataContext context;
|
||
|
public bool TryUpdateModel { get; private set; }
|
||
|
|
||
|
public BundleController(DataContext context)
|
||
|
{
|
||
|
this.context = context;
|
||
|
}
|
||
|
|
||
|
public ActionResult Index()
|
||
|
{
|
||
|
return View(context.UnderwearBundles.Include(b => b.Figures));
|
||
|
}
|
||
|
|
||
|
public ActionResult Create()
|
||
|
{
|
||
|
return View();
|
||
|
}
|
||
|
|
||
|
[HttpPost]
|
||
|
public async Task<ActionResult> Create([Bind] UnderwearBundle bundle)
|
||
|
{
|
||
|
try
|
||
|
{
|
||
|
if (ModelState.IsValid)
|
||
|
{
|
||
|
await context.UnderwearBundles.AddAsync(bundle);
|
||
|
context.SaveChanges();
|
||
|
return RedirectToAction(nameof(Index));
|
||
|
}
|
||
|
}
|
||
|
catch (DataException)
|
||
|
{
|
||
|
ModelState.AddModelError("", "Unable to save changes");
|
||
|
}
|
||
|
return View(bundle);
|
||
|
}
|
||
|
|
||
|
public async Task<ActionResult> Details(int id)
|
||
|
{
|
||
|
return View(await context.UnderwearBundles.FindAsync(id));
|
||
|
}
|
||
|
|
||
|
public async Task<ActionResult> Edit(int id)
|
||
|
{
|
||
|
return View(nameof(Details), await context.UnderwearBundles.FindAsync(id));
|
||
|
}
|
||
|
|
||
|
[HttpPost]
|
||
|
public async Task<ActionResult> Edit(int? id)
|
||
|
{
|
||
|
if (id == null)
|
||
|
{
|
||
|
return NotFound();
|
||
|
}
|
||
|
|
||
|
var bundle = await context.UnderwearBundles.FindAsync(id);
|
||
|
if (bundle == null)
|
||
|
{
|
||
|
return NotFound();
|
||
|
}
|
||
|
|
||
|
if (await TryUpdateModelAsync<UnderwearBundle>(
|
||
|
bundle,
|
||
|
"",
|
||
|
b => b.Name, b => b.Description, b => b.Price))
|
||
|
{
|
||
|
try
|
||
|
{
|
||
|
await context.SaveChangesAsync();
|
||
|
return RedirectToAction(nameof(Index));
|
||
|
}
|
||
|
catch (System.Exception)
|
||
|
{
|
||
|
ModelState.AddModelError("", "Unable to save changes");
|
||
|
}
|
||
|
}
|
||
|
return View(bundle);
|
||
|
}
|
||
|
|
||
|
[HttpPost]
|
||
|
public async Task<ActionResult> Delete(int id)
|
||
|
{
|
||
|
var bundleToDelete = await context.UnderwearBundles.FindAsync(id);
|
||
|
if (bundleToDelete == null)
|
||
|
{
|
||
|
return NotFound();
|
||
|
}
|
||
|
|
||
|
try
|
||
|
{
|
||
|
context.UnderwearBundles.Remove(bundleToDelete);
|
||
|
await context.SaveChangesAsync();
|
||
|
return RedirectToAction(nameof(Index));
|
||
|
}
|
||
|
catch(DbUpdateException)
|
||
|
{
|
||
|
return RedirectToAction(nameof(Delete), new {id = id, saveChangesError = true});
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|