summaryrefslogtreecommitdiff
path: root/Controllers/BundleController.cs
diff options
context:
space:
mode:
authorSergey Chebotar <s.chebotar@gmail.com>2023-02-20 21:53:21 +0300
committerSergey Chebotar <s.chebotar@gmail.com>2023-02-20 21:53:21 +0300
commit3c83f9f4b01b5965e04739e5f8accf3235f8f699 (patch)
tree8ec80ceaf26f1343ecccab682e9041689f4f5701 /Controllers/BundleController.cs
parentc740669676b30e5eae3cbadbef2810671b9e1c37 (diff)
Add base crud actions for bundles
Diffstat (limited to 'Controllers/BundleController.cs')
-rw-r--r--Controllers/BundleController.cs110
1 files changed, 110 insertions, 0 deletions
diff --git a/Controllers/BundleController.cs b/Controllers/BundleController.cs
new file mode 100644
index 0000000..8e72dd3
--- /dev/null
+++ b/Controllers/BundleController.cs
@@ -0,0 +1,110 @@
+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});
+ }
+ }
+ }
+} \ No newline at end of file