полный CRUD статей затрат
This commit is contained in:
parent
d5bfb16824
commit
0381c343c6
@ -22,7 +22,7 @@ namespace CarServiceDatabase.Implements
|
||||
{
|
||||
using var context = new CarServiceDbContext();
|
||||
return context.Items
|
||||
.Where(x => x.Id == model.Id)
|
||||
.Where(x => x.WorkerId == model.Id)
|
||||
.Include(x => x.Worker)
|
||||
.Select(x => x.GetViewModel)
|
||||
.ToList();
|
||||
|
@ -13,12 +13,14 @@ namespace CarServiceWebApp.Controllers
|
||||
private readonly ILogger<HomeController> _logger;
|
||||
private readonly IWorkLogic _workLogic;
|
||||
private readonly IWorkerLogic _workerLogic;
|
||||
private readonly IItemLogic _itemLogic;
|
||||
|
||||
public HomeController(ILogger<HomeController> logger, IWorkLogic workLogic, IWorkerLogic workerLogic)
|
||||
public HomeController(ILogger<HomeController> logger, IWorkLogic workLogic, IWorkerLogic workerLogic, IItemLogic itemLogic)
|
||||
{
|
||||
_logger = logger;
|
||||
_workLogic = workLogic;
|
||||
_workerLogic = workerLogic;
|
||||
_itemLogic = itemLogic;
|
||||
}
|
||||
/// <summary>
|
||||
/// Главная страница
|
||||
@ -170,6 +172,82 @@ namespace CarServiceWebApp.Controllers
|
||||
return Redirect("~/Home/Works");
|
||||
}
|
||||
/// <summary>
|
||||
/// Вывод формы со списком статей затрат
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public IActionResult Items()
|
||||
{
|
||||
if (CurrentUser.UserId < 1)
|
||||
{
|
||||
return Redirect("~/Home/Index");
|
||||
}
|
||||
var Items = _itemLogic.ReadList(new() { Id = CurrentUser.UserId });
|
||||
ViewBag.Items = Items;
|
||||
if (Items?.Count == 0)
|
||||
{
|
||||
ViewBag.Exception = "Пока нет запчастей";
|
||||
}
|
||||
return View();
|
||||
}
|
||||
/// <summary>
|
||||
/// Отображение формы CRUD запчасти
|
||||
/// </summary>
|
||||
/// <param name="Id"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
public IActionResult Item(int Id)
|
||||
{
|
||||
ViewBag.Item = _itemLogic.ReadElement(new() { Id = Id });
|
||||
return View();
|
||||
}
|
||||
/// <summary>
|
||||
/// Обновление запчасти
|
||||
/// </summary>
|
||||
/// <param name="model"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
public IActionResult UpdateItem(ItemBindingModel model)
|
||||
{
|
||||
_itemLogic.Update(model);
|
||||
return Redirect("~/Home/Items");
|
||||
}
|
||||
/// <summary>
|
||||
/// Удаление запчасти
|
||||
/// </summary>
|
||||
/// <param name="model"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
public IActionResult DeleteItem(ItemBindingModel model)
|
||||
{
|
||||
_itemLogic.Delete(model);
|
||||
return Redirect("~/Home/Items");
|
||||
}
|
||||
/// <summary>
|
||||
/// Отображение формы добавления запчасти
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
public IActionResult CreateItem() => View();
|
||||
/// <summary>
|
||||
/// Добавление запчасти
|
||||
/// </summary>
|
||||
/// <param name="model"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
public IActionResult CreateItem(ItemBindingModel model)
|
||||
{
|
||||
try
|
||||
{
|
||||
_itemLogic.Create(model);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
ViewBag.Exception = ex.Message;
|
||||
return View();
|
||||
}
|
||||
return Redirect("~/Home/Items");
|
||||
}
|
||||
/// <summary>
|
||||
/// Вывод ошибок
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
|
@ -13,6 +13,8 @@ builder.Services.AddTransient<IWorkLogic, WorkLogic>();
|
||||
builder.Services.AddTransient<IWorkStorage, WorkStorage>();
|
||||
builder.Services.AddTransient<IWorkerLogic, WorkerLogic>();
|
||||
builder.Services.AddTransient<IWorkerStorage, WorkerStorage>();
|
||||
builder.Services.AddTransient<IItemLogic, ItemLogic>();
|
||||
builder.Services.AddTransient<IItemStorage, ItemStorage>();
|
||||
|
||||
var app = builder.Build();
|
||||
|
||||
|
23
CarService/CarServiceWebApp/Views/Home/CreateItem.cshtml
Normal file
23
CarService/CarServiceWebApp/Views/Home/CreateItem.cshtml
Normal file
@ -0,0 +1,23 @@
|
||||
@{
|
||||
ViewData["Title"] = "Создание запчасти";
|
||||
}
|
||||
<form method="post">
|
||||
<div hidden><input type="text" name="Id" /></div>
|
||||
<div hidden><input type="text" name="WorkerId" value="@CurrentUser.UserId" /></div>
|
||||
<div class="row">
|
||||
<div class="col-4">Название:</div>
|
||||
<div class="col-8"><input type="text" name="Name" /></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-4">Цена:</div>
|
||||
<div class="col-8"><input type="text" name="Price" /></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-4">Количество:</div>
|
||||
<div class="col-8"><input type="text" name="Count" /></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div><button asp-controller="Home" asp-action="CreateItem" class="btn btn-primary">Добавить</button></div>
|
||||
</div>
|
||||
</form>
|
||||
<div>@ViewBag.Exception</div>
|
28
CarService/CarServiceWebApp/Views/Home/Item.cshtml
Normal file
28
CarService/CarServiceWebApp/Views/Home/Item.cshtml
Normal file
@ -0,0 +1,28 @@
|
||||
@{
|
||||
ViewData["Title"] = "Редактирование запчасти";
|
||||
}
|
||||
<form method="post">
|
||||
<div hidden><input type="text" name="Id" value="@ViewBag.Item.Id" /></div>
|
||||
<div hidden><input type="text" name="WorkerId" value="@ViewBag.Item.WorkerId" /></div>
|
||||
<div class="row">
|
||||
<div class="col-4">Название:</div>
|
||||
<div class="col-8"><input type="text" name="Name" value="@ViewBag.Item.Name" /></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-4">Цена:</div>
|
||||
<div class="col-8"><input type="text" name="Price" value="@ViewBag.Item.Price" /></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-4">Количество:</div>
|
||||
<div class="col-8"><input type="text" name="Count" value="@ViewBag.Item.Count" /></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div><button asp-controller="Home" asp-action="UpdateItem" class="btn btn-primary">Изменить</button></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div><button asp-controller="Home" asp-action="DeleteItem" class="btn btn-primary">Удалить</button></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div><button asp-controller="Home" asp-action="Items" type="submit" class="btn btn-primary">Отмена</button></div>
|
||||
</div>
|
||||
</form>
|
34
CarService/CarServiceWebApp/Views/Home/Items.cshtml
Normal file
34
CarService/CarServiceWebApp/Views/Home/Items.cshtml
Normal file
@ -0,0 +1,34 @@
|
||||
@{
|
||||
ViewData["Title"] = "Запчасти";
|
||||
}
|
||||
|
||||
<div class="text-center">
|
||||
<h1 class="display-4">Запчасти</h1>
|
||||
@if (ViewBag.Items.Count != 0)
|
||||
{
|
||||
<center>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Название</th>
|
||||
<th>Цена (в рублях)</th>
|
||||
<th>Количество на складе</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach (var item in ViewBag.Items)
|
||||
{
|
||||
<tr>
|
||||
<td>@item.Name</td>
|
||||
<td>@item.Price</td>
|
||||
<td>@item.Count</td>
|
||||
<td><a href="/Home/Item/@item.Id">Изменить</a></td>
|
||||
</tr>
|
||||
}
|
||||
</tbody>
|
||||
</table>
|
||||
</center>
|
||||
}
|
||||
<div><center><a asp-controller="Home" asp-action="CreateItem" class="btn btn-primary">Добавить</a></center></div>
|
||||
<div>@ViewBag.Exception</div>
|
||||
</div>
|
@ -26,7 +26,7 @@
|
||||
<a class="nav-link text-dark" asp-area="" asp-controller="Home" asp-action="Privacy">Заявки</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link text-dark" asp-area="" asp-controller="Home" asp-action="Privacy">Статьи затрат</a>
|
||||
<a class="nav-link text-dark" asp-area="" asp-controller="Home" asp-action="Items">Запчасти</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link text-dark" asp-area="" asp-controller="Home" asp-action="Privacy">Отчет</a>
|
||||
|
Loading…
Reference in New Issue
Block a user