using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Karsha_Site.Application.Interfaces.FacadPatterns; using Karsha_Site.Application.Services.Products.Commands.AddNewProduct; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.Rendering; namespace EndPoint.Site.Areas.Admin.Controllers { [Area("Admin")] public class ProductsController : Controller { private readonly IProductFacad _productFacad; public ProductsController(IProductFacad productFacad) { _productFacad = productFacad; } public IActionResult Index(int Page = 1, int PageSize = 10) { return View(_productFacad.GetProductForAdminService.Execute(Page, PageSize).Data); } public IActionResult Detail(int Id) { return View(_productFacad.GetProductDetailForAdminService.Execute(Id).Data); } [HttpGet] public IActionResult AddNewProduct() { ViewBag.Categories = new SelectList(_productFacad.GetAllCategoriesService.Execute().Data, "ID", "Title"); return View(); } [HttpPost] public IActionResult AddNewProduct(RequestAddNewProductDto request, List Features) { List images = new List(); for (int i = 0; i < Request.Form.Files.Count; i++) { var file = Request.Form.Files[i]; images.Add(file); } request.Images = images; request.Features = Features; return Json(_productFacad.AddNewProductService.Execute(request)); } [HttpPost] public IActionResult Delete(int ProductId) { return Json(_productFacad.RemoveProductService.Execute(ProductId)); } } }