You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

ProductsController.cs 1.9KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Threading.Tasks;
  5. using Karsha_Site.Application.Interfaces.FacadPatterns;
  6. using Karsha_Site.Application.Services.Products.Commands.AddNewProduct;
  7. using Microsoft.AspNetCore.Http;
  8. using Microsoft.AspNetCore.Mvc;
  9. using Microsoft.AspNetCore.Mvc.Rendering;
  10. namespace EndPoint.Site.Areas.Admin.Controllers
  11. {
  12. [Area("Admin")]
  13. public class ProductsController : Controller
  14. {
  15. private readonly IProductFacad _productFacad;
  16. public ProductsController(IProductFacad productFacad)
  17. {
  18. _productFacad = productFacad;
  19. }
  20. public IActionResult Index(int Page = 1, int PageSize = 10)
  21. {
  22. return View(_productFacad.GetProductForAdminService.Execute(Page, PageSize).Data);
  23. }
  24. public IActionResult Detail(int Id)
  25. {
  26. return View(_productFacad.GetProductDetailForAdminService.Execute(Id).Data);
  27. }
  28. [HttpGet]
  29. public IActionResult AddNewProduct()
  30. {
  31. ViewBag.Categories = new SelectList(_productFacad.GetAllCategoriesService.Execute().Data, "ID", "Title");
  32. return View();
  33. }
  34. [HttpPost]
  35. public IActionResult AddNewProduct(RequestAddNewProductDto request, List<AddNewProduct_Features> Features)
  36. {
  37. List<IFormFile> images = new List<IFormFile>();
  38. for (int i = 0; i < Request.Form.Files.Count; i++)
  39. {
  40. var file = Request.Form.Files[i];
  41. images.Add(file);
  42. }
  43. request.Images = images;
  44. request.Features = Features;
  45. return Json(_productFacad.AddNewProductService.Execute(request));
  46. }
  47. [HttpPost]
  48. public IActionResult Delete(int ProductId)
  49. {
  50. return Json(_productFacad.RemoveProductService.Execute(ProductId));
  51. }
  52. }
  53. }