117 lines
4.8 KiB
C#
117 lines
4.8 KiB
C#
using AyCode.Core.Loggers;
|
|
using AyCode.Services.SignalRs;
|
|
using FruitBank.Common.Dtos;
|
|
using FruitBank.Common.Entities;
|
|
using FruitBank.Common.Interfaces;
|
|
using FruitBank.Common.Server.Interfaces;
|
|
using FruitBank.Common.SignalRs;
|
|
using Mango.Nop.Core.Loggers;
|
|
using Nop.Core;
|
|
using Nop.Core.Domain.Orders;
|
|
using Nop.Plugin.Misc.FruitBankPlugin.Controllers;
|
|
using Nop.Plugin.Misc.FruitBankPlugin.Domains.DataLayer;
|
|
|
|
namespace Nop.Plugin.Misc.FruitBankPlugin.Areas.Admin.Controllers;
|
|
|
|
public class CustomOrderSignalREndpoint(FruitBankDbContext ctx, IWorkContext workContext, IEnumerable<IAcLogWriterBase> logWriters) : ICustomOrderSignalREndpointServer
|
|
{
|
|
private readonly ILogger _logger = new Logger<CustomOrderSignalREndpoint>(logWriters.ToArray());
|
|
|
|
[SignalR(SignalRTags.GetAllOrderDtos)]
|
|
public async Task<List<OrderDto>> GetAllOrderDtos()
|
|
{
|
|
return await ctx.OrderDtos.GetAll(true).ToListAsync();
|
|
}
|
|
|
|
[SignalR(SignalRTags.GetOrderDtoById)]
|
|
public async Task<OrderDto> GetOrderDtoById(int orderId)
|
|
{
|
|
return await ctx.OrderDtos.GetByIdAsync(orderId);
|
|
}
|
|
|
|
[SignalR(SignalRTags.GetPendingOrderDtos)]
|
|
public async Task<List<OrderDto>> GetPendingOrderDtos()
|
|
{
|
|
return await ctx.OrderDtos.GetAllByOrderStatus(OrderStatus.Pending).ToListAsync();
|
|
}
|
|
|
|
[SignalR(SignalRTags.GetAllOrderDtoByIds)]
|
|
public async Task<List<OrderDto>> GetAllOrderDtoByIds(int[] orderIds)
|
|
{
|
|
return await ctx.OrderDtos.GetAllByIds(orderIds).ToListAsync();
|
|
}
|
|
|
|
[SignalR(SignalRTags.SetOrderStatusToComplete)]
|
|
public async Task<OrderDto> SetOrderStatusToComplete(int orderId)
|
|
{
|
|
_logger.Detail($"SetOrderStatusToComplete invoked; orderId: {orderId}");
|
|
|
|
if (!await ctx.SetOrderStatusToCompleteSafe(orderId)) return null;
|
|
return await ctx.OrderDtos.GetByIdAsync(orderId);
|
|
}
|
|
|
|
[SignalR(SignalRTags.AddOrUpdateMeasuredOrderItemPallet)]
|
|
public async Task<OrderItemPallet> AddOrUpdateMeasuredOrderItemPallet(OrderItemPallet orderItemPallet)
|
|
{
|
|
ArgumentNullException.ThrowIfNull(orderItemPallet);
|
|
|
|
var customer = await workContext.GetCurrentCustomerAsync();
|
|
_logger.Detail($"AddOrUpdateMeasuredOrderItemPallet invoked; {orderItemPallet}; CustomerId: {customer?.Id}");
|
|
|
|
if (!await ctx.AddOrUpdateOrderItemPalletSafeAsync(orderItemPallet)) return null;
|
|
return await ctx.OrderItemPallets.GetByIdAsync(orderItemPallet.Id, false);
|
|
}
|
|
|
|
//[SignalR(SignalRTags.AddOrderItemPallet)]
|
|
//public async Task<OrderItemPallet> AddOrderItemPallet(OrderItemPallet orderItemPallet)
|
|
//{
|
|
// ArgumentNullException.ThrowIfNull(orderItemPallet);
|
|
|
|
// _logger.Detail($"AddOrderItemPallet invoked; {orderItemPallet}");
|
|
|
|
// if (!await ctx.AddOrderItemPalletSafeAsync(orderItemPallet)) return null;
|
|
// return await ctx.OrderItemPallets.GetByIdAsync(orderItemPallet.Id, false);
|
|
//}
|
|
|
|
//[SignalR(SignalRTags.UpdateOrderItemPallet)]
|
|
//public async Task<OrderItemPallet> UpdateOrderItemPallet(OrderItemPallet orderItemPallet)
|
|
//{
|
|
// ArgumentNullException.ThrowIfNull(orderItemPallet);
|
|
|
|
// _logger.Detail($"UpdateOrderItemPallet invoked; {orderItemPallet}");
|
|
|
|
// if (!await ctx.UpdateOrderItemPalletSafeAsync(orderItemPallet)) return null;
|
|
// return await ctx.OrderItemPallets.GetByIdAsync(orderItemPallet.Id, false);
|
|
//}
|
|
|
|
//[SignalR(SignalRTags.AddOrUpdateMeasuredOrderItemPallets)]
|
|
//public async Task<ShippingItem> AddOrUpdateMeasuredOrderItemPallets(List<OrderItemPallet> orderItemPallets)
|
|
//{
|
|
// // ArgumentNullException.ThrowIfNull(orderItemPallets);
|
|
|
|
// // _logger.Detail($"AddOrUpdateMeasuredOrderItemPallets invoked; count: {orderItemPallets.Count}");
|
|
|
|
// // if (orderItemPallets.Count == 0) return null;
|
|
|
|
// // var shippingItemId = orderItemPallets.FirstOrDefault()!.ShippingItemId;
|
|
// // if (shippingItemId <= 0 || orderItemPallets.Any(x => x.ShippingItemId != shippingItemId)) return null;
|
|
|
|
// // var shippingItem = await ctx.ShippingItems.GetByIdAsync(shippingItemId, false);
|
|
// // shippingItem.orderItemPallets = orderItemPallets.Where(sip => sip.IsValidMeasuringValues(shippingItem.IsMeasurable)).ToList();
|
|
|
|
// // return await UpdateMeasuredShippingItem(shippingItem);
|
|
|
|
// return null;
|
|
//}
|
|
|
|
//[SignalR(SignalRTags.AddOrUpdateMeasuredOrderItemPallet)]
|
|
//public async Task<OrderItemPallet> AddOrUpdateMeasuredOrderItemPallet(OrderItemPallet orderItemPallet)
|
|
//{
|
|
// ArgumentNullException.ThrowIfNull(orderItemPallet);
|
|
|
|
// _logger.Detail($"AddOrUpdateMeasuredOrderItemPallet invoked; {orderItemPallet}");
|
|
|
|
// if (!await ctx.AddOrUpdateOrderItemPalletSafeAsync(orderItemPallet)) return null;
|
|
// return await ctx.OrderItemPallets.GetByIdAsync(orderItemPallet.Id, false);
|
|
//}
|
|
} |