Просмотр каталожечка
This commit is contained in:
parent
eeec81593b
commit
28437690c0
@ -1,83 +0,0 @@
|
|||||||
using Microsoft.AspNetCore.Http;
|
|
||||||
using Microsoft.AspNetCore.Mvc;
|
|
||||||
|
|
||||||
namespace RestAPI.Controllers
|
|
||||||
{
|
|
||||||
public class CartController : Controller
|
|
||||||
{
|
|
||||||
// GET: CartController
|
|
||||||
public ActionResult Index()
|
|
||||||
{
|
|
||||||
return View();
|
|
||||||
}
|
|
||||||
|
|
||||||
// GET: CartController/Details/5
|
|
||||||
public ActionResult Details(int id)
|
|
||||||
{
|
|
||||||
return View();
|
|
||||||
}
|
|
||||||
|
|
||||||
// GET: CartController/Create
|
|
||||||
public ActionResult Create()
|
|
||||||
{
|
|
||||||
return View();
|
|
||||||
}
|
|
||||||
|
|
||||||
// POST: CartController/Create
|
|
||||||
[HttpPost]
|
|
||||||
[ValidateAntiForgeryToken]
|
|
||||||
public ActionResult Create(IFormCollection collection)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
return RedirectToAction(nameof(Index));
|
|
||||||
}
|
|
||||||
catch
|
|
||||||
{
|
|
||||||
return View();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// GET: CartController/Edit/5
|
|
||||||
public ActionResult Edit(int id)
|
|
||||||
{
|
|
||||||
return View();
|
|
||||||
}
|
|
||||||
|
|
||||||
// POST: CartController/Edit/5
|
|
||||||
[HttpPost]
|
|
||||||
[ValidateAntiForgeryToken]
|
|
||||||
public ActionResult Edit(int id, IFormCollection collection)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
return RedirectToAction(nameof(Index));
|
|
||||||
}
|
|
||||||
catch
|
|
||||||
{
|
|
||||||
return View();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// GET: CartController/Delete/5
|
|
||||||
public ActionResult Delete(int id)
|
|
||||||
{
|
|
||||||
return View();
|
|
||||||
}
|
|
||||||
|
|
||||||
// POST: CartController/Delete/5
|
|
||||||
[HttpPost]
|
|
||||||
[ValidateAntiForgeryToken]
|
|
||||||
public ActionResult Delete(int id, IFormCollection collection)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
return RedirectToAction(nameof(Index));
|
|
||||||
}
|
|
||||||
catch
|
|
||||||
{
|
|
||||||
return View();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
60
RestAPI/Controllers/MediaFileController.cs
Normal file
60
RestAPI/Controllers/MediaFileController.cs
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
using Contracts.BusinessLogicContracts;
|
||||||
|
using Contracts.SearchModels;
|
||||||
|
using Contracts.ViewModels;
|
||||||
|
using DatabaseImplement.Models;
|
||||||
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace RestAPI.Controllers
|
||||||
|
{
|
||||||
|
public class MediaFileController : Controller
|
||||||
|
{
|
||||||
|
private readonly IMediaFileLogic _mediaFileLogic;
|
||||||
|
private readonly IProductLogic _productLogic;
|
||||||
|
private readonly ILogger _logger;
|
||||||
|
public MediaFileController(ILogger logger, IMediaFileLogic mediaFileLogic, IProductLogic productLogic)
|
||||||
|
{
|
||||||
|
_logger = logger;
|
||||||
|
_mediaFileLogic = mediaFileLogic;
|
||||||
|
_productLogic = productLogic;
|
||||||
|
}
|
||||||
|
[HttpGet]
|
||||||
|
public List<MediaFileViewModel> GetFullList()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
return _mediaFileLogic.ReadList(null);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
_logger.LogError(ex, "Ошибка получения списка продуктов");
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
[HttpGet]
|
||||||
|
public Dictionary<ProductViewModel, List<MediaFileViewModel>> GetByProducts()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var dict = new Dictionary<ProductViewModel, List<MediaFileViewModel>>();
|
||||||
|
var products = _productLogic.ReadList(null);
|
||||||
|
|
||||||
|
foreach (var product in products)
|
||||||
|
{
|
||||||
|
var media = _mediaFileLogic.ReadList(new MediaFileSearchModel()
|
||||||
|
{
|
||||||
|
ProductId = product.Id,
|
||||||
|
});
|
||||||
|
dict.Add(product, media);
|
||||||
|
}
|
||||||
|
return dict;
|
||||||
|
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
_logger.LogError(ex, "Ошибка получения списка продуктов");
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -48,7 +48,7 @@
|
|||||||
@foreach (var weapon in @Model.ProductsModel)
|
@foreach (var weapon in @Model.ProductsModel)
|
||||||
{
|
{
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<img src="#" class="card-img-top" alt="@weapon.Name">
|
<img src="@Model.GetMediaByProduct(weapon)[0].Location" class="card-img-top" alt="@weapon.Name">
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<h5 class="card-title">@weapon.Name</h5>
|
<h5 class="card-title">@weapon.Name</h5>
|
||||||
<p class="card-text">Цена: >@weapon.Price руб.</p>
|
<p class="card-text">Цена: >@weapon.Price руб.</p>
|
||||||
|
@ -9,10 +9,17 @@ namespace WebApp.Pages
|
|||||||
public class IndexModel : PageModel
|
public class IndexModel : PageModel
|
||||||
{
|
{
|
||||||
public List<ProductViewModel> ProductsModel { get; set; }
|
public List<ProductViewModel> ProductsModel { get; set; }
|
||||||
|
public Dictionary<ProductViewModel, List<MediaFileViewModel>> MediaByProductsModel { get; set; }
|
||||||
|
|
||||||
public void OnGet()
|
public void OnGet()
|
||||||
{
|
{
|
||||||
ProductsModel = APIClient.GetRequest<List<ProductViewModel>>($"Product/GetFullList");
|
ProductsModel = APIClient.GetRequest<List<ProductViewModel>>($"Product/GetFullList");
|
||||||
|
MediaByProductsModel = APIClient.GetRequest<Dictionary<ProductViewModel, List<MediaFileViewModel>>>($"MediaFile/GetByProducts?");
|
||||||
|
}
|
||||||
|
public List<MediaFileViewModel> GetMediaByProduct(ProductViewModel productModel)
|
||||||
|
{
|
||||||
|
MediaByProductsModel.TryGetValue(productModel, out List<MediaFileViewModel> models);
|
||||||
|
return models;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user