0
0

Base figure edition

This commit is contained in:
Sergey Chebotar 2023-02-22 07:56:30 +03:00
parent 71a3253a72
commit 5d03419a79
3 changed files with 111 additions and 4 deletions

View File

@ -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);
}
}
}

View File

@ -18,15 +18,31 @@
<input asp-for="Name" class="form-control" /> <input asp-for="Name" class="form-control" />
</div> </div>
<div class="form-group"> <div class="form-group">
<label asp-for="Description" class="form-label">Descrition:</label> <label asp-for="Description" class="form-label">Description:</label>
@Html.TextAreaFor(model => model.Description, new { @class="form-control", @rows = 4 }) @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>
<div class="form-group"> <div class="form-group">
<label asp-for="Price" class="form-label">Price:</label> <label asp-for="Price" class="form-label">Price:</label>
<input asp-for="Price" class="form-control" /> <input asp-for="Price" class="form-control" />
</div> </div>
<button type="submit" class="btn btn-primary mt-3">Save</button> <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> </form>
</container> </container>
</body> </body>

View File

@ -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>