120 lines
4.8 KiB
C#
120 lines
4.8 KiB
C#
using AyCode.Services.SignalRs;
|
|
using FruitBank.Common.Dtos;
|
|
using FruitBank.Common.Interfaces;
|
|
using FruitBank.Common.Server.Interfaces;
|
|
using FruitBank.Common.SignalRs;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
using Nop.Core.Domain.Orders;
|
|
using Nop.Plugin.Misc.FruitBankPlugin.Domains.DataLayer;
|
|
using Nop.Plugin.Misc.FruitBankPlugin.Factories;
|
|
using Nop.Plugin.Misc.FruitBankPlugin.Models;
|
|
using Nop.Services.Orders;
|
|
using Nop.Services.Security;
|
|
using Nop.Web.Areas.Admin.Controllers;
|
|
using Nop.Web.Areas.Admin.Factories;
|
|
using Nop.Web.Areas.Admin.Models.Orders;
|
|
using Nop.Web.Framework;
|
|
using Nop.Web.Framework.Mvc.Filters;
|
|
|
|
namespace Nop.Plugin.Misc.FruitBankPlugin.Areas.Admin.Controllers
|
|
{
|
|
[Area(AreaNames.ADMIN)]
|
|
[AuthorizeAdmin]
|
|
public class CustomOrderController : BaseAdminController, ICustomOrderSignalREndpointServer
|
|
{
|
|
private readonly IOrderService _orderService;
|
|
private readonly CustomOrderModelFactory _orderModelFactory;
|
|
private readonly ICustomOrderSignalREndpointServer _customOrderSignalREndpoint;
|
|
private readonly IPermissionService _permissionService;
|
|
// ... other dependencies
|
|
|
|
public CustomOrderController(IOrderService orderService, IOrderModelFactory orderModelFactory, ICustomOrderSignalREndpointServer customOrderSignalREndpoint, IPermissionService permissionService)
|
|
{
|
|
_orderService = orderService;
|
|
_orderModelFactory = orderModelFactory as CustomOrderModelFactory;
|
|
_customOrderSignalREndpoint = customOrderSignalREndpoint;
|
|
_permissionService = permissionService;
|
|
// ... initialize other deps
|
|
}
|
|
|
|
#region CustomOrderSignalREndpoint
|
|
public Task<List<OrderDto>> GetAllOrderDtos()
|
|
=> _customOrderSignalREndpoint.GetAllOrderDtos();
|
|
public Task<OrderDto> GetOrderDtoById(int orderId)
|
|
=> _customOrderSignalREndpoint.GetOrderDtoById(orderId);
|
|
public Task<List<OrderDto>> GetPendingOrderDtos()
|
|
=> _customOrderSignalREndpoint.GetPendingOrderDtos();
|
|
#endregion CustomOrderSignalREndpoint
|
|
|
|
[CheckPermission(StandardPermission.Orders.ORDERS_VIEW)]
|
|
public virtual async Task<IActionResult> List(List<int> orderStatuses = null, List<int> paymentStatuses = null, List<int> 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 async Task<IActionResult> OrderList(OrderSearchModel searchModel)
|
|
{
|
|
//prepare model
|
|
//var orderListModel = await GetOrderListModelByFilter(searchModel);
|
|
var orderListModel = new OrderListModel();
|
|
|
|
var valami = Json(orderListModel);
|
|
Console.WriteLine(valami);
|
|
return valami;
|
|
}
|
|
|
|
public async Task<OrderListModelExtended> GetOrderListModelByFilter(OrderSearchModel searchModel)
|
|
{
|
|
//return _customOrderService.
|
|
var orderListModel = await _orderModelFactory.PrepareOrderListModelExtendedAsync(searchModel);
|
|
|
|
Console.WriteLine($"Total: {orderListModel.RecordsTotal}, Data Count: {orderListModel.Data.Count()}");
|
|
foreach (var item in orderListModel.Data.Take(3))
|
|
{
|
|
Console.WriteLine($"Order: {item.Id}, {item.CustomOrderNumber}");
|
|
}
|
|
|
|
return orderListModel;
|
|
}
|
|
|
|
public async Task<OrderListModelExtended> GetPendingOrderListModel()
|
|
{
|
|
var orderSearchModel = new OrderSearchModel
|
|
{
|
|
OrderStatusIds = new List<int> { (int)OrderStatus.Pending }
|
|
};
|
|
|
|
return await GetOrderListModelByFilter(orderSearchModel);
|
|
}
|
|
|
|
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<IActionResult> OrderList(OrderSearchModel searchModel)
|
|
//{
|
|
// //prepare model
|
|
// var model = await _orderModelFactory.PrepareOrderListModelAsync(searchModel);
|
|
|
|
// return Json(model);
|
|
//}
|
|
}
|
|
}
|
|
|
|
|