summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Controllers/FigureController.cs58
-rw-r--r--Views/Bundle/Details.cshtml24
-rw-r--r--Views/Figure/Details.cshtml33
3 files changed, 111 insertions, 4 deletions
diff --git a/Controllers/FigureController.cs b/Controllers/FigureController.cs
new file mode 100644
index 0000000..5785f86
--- /dev/null
+++ b/Controllers/FigureController.cs
@@ -0,0 +1,58 @@
+using System.Data;
+using Microsoft.AspNetCore.Mvc;
+using Microsoft.EntityFrameworkCore;
+using MyDarling.Models;
+
+namespace MyDarling.Controllers
+{
+ public class FigureController : Controller
+ {
+ private DataContext context;
+ public FigureController(DataContext context)
+ {
+ this.context = context;
+ }
+
+ public async Task<IActionResult> Details(int id)
+ {
+ return View(await context.Figures.Where(f => f.Id == id).FirstOrDefaultAsync());
+ }
+
+ [HttpPost]
+ public async Task<IActionResult> Edit(int? id)
+ {
+ if (id == null)
+ {
+ return NotFound();
+ }
+
+ var figure = await context.Figures.FindAsync(id);
+
+ if (figure == null)
+ {
+ return NotFound();
+ }
+
+ var bundle = await context.UnderwearBundles
+ .Where(b => b.Figures.Contains(figure))
+ .FirstOrDefaultAsync();
+
+ if (await TryUpdateModelAsync<Figure>(
+ figure,
+ "",
+ f => f.Description))
+ {
+ try
+ {
+ await context.SaveChangesAsync();
+ return RedirectToAction("Details", "Bundle", new { Id = bundle?.Id});
+ }
+ catch (SystemException)
+ {
+ ModelState.AddModelError("", "Unable to save changes");
+ }
+ }
+ return View(figure);
+ }
+ }
+} \ No newline at end of file
diff --git a/Views/Bundle/Details.cshtml b/Views/Bundle/Details.cshtml
index edaec11..b7df95b 100644
--- a/Views/Bundle/Details.cshtml
+++ b/Views/Bundle/Details.cshtml
@@ -11,22 +11,38 @@
<body>
<container>
- <form asp-action="Edit" asp-route-id="@Model.Id" method="post" class="m-2">
+ <form asp-action="Edit" asp-route-id="@Model.Id" method="post" class="m-2">
<div asp-validation-summary="All"></div>
<div class="form-group">
<label asp-for="Name" class="form-label">Name:</label>
<input asp-for="Name" class="form-control" />
</div>
<div class="form-group">
- <label asp-for="Description" class="form-label">Descrition:</label>
- @Html.TextAreaFor(model => model.Description, new { @class="form-control", @rows = 4 })
+ <label asp-for="Description" class="form-label">Description:</label>
+ @Html.TextAreaFor(model => model.Description, new { @class="form-control", @rows = 2 })
+ </div>
+ <div>
+ <label class="form-label">Figures:</label>
+ <div class="row gx-4 gx-lg-5 row-cols-2 row-cols-md-3 row-cols-xl-4">
+ @foreach (var figure in @Model.Figures)
+ {
+ <div class="col mb-5">
+ <div class="thumbnail h-100">
+ <a asp-controller="Figure" asp-action="Details" asp-route-id="@figure.Id">
+ <img src="@figure.FilePath" class="img-thumbnail img-fluid" alt="@figure.Description">
+ </a>
+ </div>
+ </div>
+ }
+ </div>
</div>
<div class="form-group">
<label asp-for="Price" class="form-label">Price:</label>
<input asp-for="Price" class="form-control" />
</div>
<button type="submit" class="btn btn-primary mt-3">Save</button>
- <button asp-action="Delete" asp-route-id="@Model.Id" method="post" class="btn btn-primary mt-3">Delete</button>
+ <button asp-action="Delete" asp-route-id="@Model.Id" method="post"
+ class="btn btn-primary mt-3">Delete</button>
</form>
</container>
</body>
diff --git a/Views/Figure/Details.cshtml b/Views/Figure/Details.cshtml
new file mode 100644
index 0000000..2148ed3
--- /dev/null
+++ b/Views/Figure/Details.cshtml
@@ -0,0 +1,33 @@
+@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
+@model MyDarling.Models.Figure
+
+<!DOCTYPE html>
+<html>
+
+<head>
+ <title>Figure</title>
+ <link href="/lib/bootstrap/css/bootstrap.min.css" rel="stylesheet" />
+</head>
+
+<body>
+ <div class="row gx-4 gx-lg-5 row-cols-2 row-cols-md-3 row-cols-xl-4 justify-content-center">
+ <div class="col mb-5">
+ <div class="thumbnail h-100">
+ <a href="@Model.FilePath">
+ <img src="@Model.FilePath" class="img-thumbnail img-fluid" alt="@Model.Description">
+ </a>
+ </div>
+ </div>
+ </div>
+ <form asp-action="Edit" asp-route-id="@Model.Id" method="post" class="m-2">
+ <div asp-validation-summary="All"></div>
+ <div class="form-group">
+ <label asp-for="Description" class="form-label">Description:</label>
+ @Html.TextAreaFor(model => model.Description, new { @class="form-control", @rows = 2 })
+ </div>
+ <button type="submit" class="btn btn-primary mt-3">Save</button>
+ </form>
+
+</body>
+
+</html>