diff options
-rw-r--r-- | Controllers/FigureController.cs | 58 | ||||
-rw-r--r-- | Views/Bundle/Details.cshtml | 24 | ||||
-rw-r--r-- | Views/Figure/Details.cshtml | 33 |
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> |