using Microsoft.AspNetCore.Mvc; using Nop.Services.Orders; using Nop.Web.Areas.Admin.Controllers; using Nop.Web.Framework.Mvc.Filters; using Nop.Web.Framework; using Nop.Web.Areas.Admin.Models.Orders; using Nop.Services.Security; using Nop.Plugin.Misc.FruitBankPlugin.Factories; using Nop.Web.Areas.Admin.Factories; using Nop.Plugin.Misc.FruitBankPlugin.Models; namespace Nop.Plugin.Misc.FruitBankPlugin.Areas.Admin.Controllers { [Area(AreaNames.ADMIN)] [AuthorizeAdmin] public class CustomOrderController : BaseAdminController { private readonly IOrderService _orderService; private readonly IOrderModelFactory _orderModelFactory; private readonly IPermissionService _permissionService; // ... other dependencies public CustomOrderController(IOrderService orderService, IOrderModelFactory orderModelFactory, IPermissionService permissionService) { _orderService = orderService; _orderModelFactory = orderModelFactory; _permissionService = permissionService; // ... initialize other deps } [CheckPermission(StandardPermission.Orders.ORDERS_VIEW)] public virtual async Task List(List orderStatuses = null, List paymentStatuses = null, List shippingStatuses = null) { //prepare model var model = await _orderModelFactory.PrepareOrderSearchModelAsync(new OrderSearchModel { OrderStatusIds = orderStatuses, PaymentStatusIds = paymentStatuses, ShippingStatusIds = shippingStatuses, }); return View("~/Plugins/Misc.FruitBankPlugin/Areas/Admin/Views/Order/List.cshtml", model); } [HttpPost] [CheckPermission(StandardPermission.Orders.ORDERS_VIEW)] public virtual async Task OrderList(OrderSearchModel searchModel) { //prepare model var model = await _orderModelFactory.PrepareOrderListModelAsync(searchModel); Console.WriteLine($"Total: {model.RecordsTotal}, Data Count: {model.Data.Count()}"); foreach (var item in model.Data.Take(3)) { Console.WriteLine($"Order: {item.Id}, {item.CustomOrderNumber}"); } var valami = Json(model); Console.WriteLine(valami); return valami; } public virtual IActionResult Test() { // Your custom logic here // This will use your custom List.cshtml view return View("~/Plugins/Misc.FruitBankPlugin/Areas/Admin/Views/Order/Test.cshtml"); } //[HttpPost] //[CheckPermission(Nop.Services.Security.StandardPermission.Orders.ORDERS_VIEW)] //public virtual async Task OrderList(OrderSearchModel searchModel) //{ // //prepare model // var model = await _orderModelFactory.PrepareOrderListModelAsync(searchModel); // return Json(model); //} } }