improvements, fixes, etc...

This commit is contained in:
Loretta 2025-11-24 08:27:02 +01:00
parent 7c07811ef6
commit 1673f1fd90
7 changed files with 74 additions and 21 deletions

View File

@ -1,5 +1,6 @@
using AyCode.Core.Loggers;
using AyCode.Services.SignalRs;
using DocumentFormat.OpenXml.Drawing;
using FruitBank.Common.Dtos;
using FruitBank.Common.Entities;
using FruitBank.Common.Interfaces;
@ -20,14 +21,16 @@ namespace Nop.Plugin.Misc.FruitBankPlugin.Areas.Admin.Controllers;
public class CustomOrderSignalREndpoint(FruitBankDbContext ctx, SignalRSendToClientService sendToClient, IPriceCalculationService customPriceCalculationService,IEventPublisher eventPublisher, IWorkContext workContext, IEnumerable<IAcLogWriterBase> logWriters)
: ICustomOrderSignalREndpointServer
{
private const int FromOrderDays = -14;
private const int LastOrderDays = 15;
private readonly ILogger _logger = new Logger<CustomOrderSignalREndpoint>(logWriters.ToArray());
[SignalR(SignalRTags.GetAllOrderDtos)]
public async Task<List<OrderDto>> GetAllOrderDtos()
{
var fromDateUtc = DateTime.UtcNow.Date.AddDays(FromOrderDays);
return await ctx.OrderDtos.GetAll(true).Where(o => o.CreatedOnUtc > fromDateUtc).ToListAsync();
_logger.Detail($"GetAllOrderDtos invoked; lastDaysCount: {LastOrderDays}");
var fromDateUtc = DateTime.UtcNow.Date.AddDays(-LastOrderDays);
return await ctx.OrderDtos.GetAll(true).Where(o => o.CreatedOnUtc >= fromDateUtc).ToListAsync();
}
[SignalR(SignalRTags.GetOrderDtoById)]
@ -45,8 +48,15 @@ public class CustomOrderSignalREndpoint(FruitBankDbContext ctx, SignalRSendToCli
[SignalR(SignalRTags.GetPendingOrderDtosForMeasuring)]
public async Task<List<OrderDto>> GetPendingOrderDtosForMeasuring(int lastDaysCount)
{
_logger.Detail($"GetPendingOrderDtosForMeasuring invoked; lastDaysCount: {lastDaysCount}");
var startTime = DateTime.Now;
var fromDate = DateTime.Now.AddDays(-lastDaysCount);
return await ctx.OrderDtos.GetAllForMeasuring(fromDate).ToListAsync();
var orders = await ctx.OrderDtos.GetAllForMeasuring(fromDate).ToListAsync();
_logger.Detail($"GetPendingOrderDtosForMeasuring; ordersCount: {orders.Count}; dbResponse: {(DateTime.Now - startTime).TotalSeconds} sec.");
return orders;
}
[SignalR(SignalRTags.GetOrderDatesForMeasuring)]
@ -78,8 +88,10 @@ public class CustomOrderSignalREndpoint(FruitBankDbContext ctx, SignalRSendToCli
[SignalR(SignalRTags.GetAllOrderItemDtos)]
public async Task<List<OrderItemDto>> GetAllOrderItemDtos()
{
var fromDateUtc = DateTime.UtcNow.Date.AddDays(FromOrderDays);
return await ctx.OrderItemDtos.GetAll(true).Where(oi => oi.OrderDto.CreatedOnUtc > fromDateUtc).ToListAsync();
_logger.Detail($"GetAllOrderItemDtos invoked; lastDaysCount: {LastOrderDays}");
var fromDateUtc = DateTime.UtcNow.Date.AddDays(-LastOrderDays);
return await ctx.OrderItemDtos.GetAll(true).Where(oi => oi.OrderDto == null || oi.OrderDto.CreatedOnUtc >= fromDateUtc).ToListAsync();
}
[SignalR(SignalRTags.GetAllOrderItemDtoByOrderId)]
@ -103,7 +115,10 @@ public class CustomOrderSignalREndpoint(FruitBankDbContext ctx, SignalRSendToCli
[SignalR(SignalRTags.GetAllOrderItemPallets)]
public async Task<List<OrderItemPallet>> GetAllOrderItemPallets()
{
return await ctx.OrderItemPallets.GetAll(true).ToListAsync();
_logger.Detail($"GetAllOrderItemPallets invoked; lastDaysCount: {LastOrderDays}");
var fromDateUtc = DateTime.UtcNow.Date.AddDays(-LastOrderDays);
return await ctx.OrderItemPallets.GetAll(true).Where(oip => oip.OrderItemDto.OrderDto == null || oip.OrderItemDto.OrderDto.CreatedOnUtc >= fromDateUtc).ToListAsync();
}
[SignalR(SignalRTags.GetAllOrderItemPalletByOrderItemId)]
public async Task<List<OrderItemPallet>> GetAllOrderItemPalletByOrderItemId(int orderItemId)

View File

@ -1,4 +1,8 @@
using AyCode.Core.Extensions;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using AyCode.Core.Extensions;
using AyCode.Core.Loggers;
using AyCode.Services.SignalRs;
using DocumentFormat.OpenXml.Office2010.Excel;
@ -37,6 +41,7 @@ namespace Nop.Plugin.Misc.FruitBankPlugin.Controllers
IEnumerable<IAcLogWriterBase> logWriters)
: BasePluginController, IFruitBankDataControllerServer
{
private const int LastShippingDays = 15;
private readonly ILogger _logger = new Logger<FruitBankDataController>(logWriters.ToArray());
[SignalR(SignalRTags.ProcessAndSaveFullShippingJson)]
@ -93,18 +98,24 @@ namespace Nop.Plugin.Misc.FruitBankPlugin.Controllers
[SignalR(SignalRTags.GetShippings)]
public async Task<List<Shipping>> GetShippings()
{
_logger.Detail($"GetShippings invoked");
_logger.Detail($"GetShippings invoked; lastDaysCount: {LastShippingDays}");
return await ctx.Shippings.GetAll(true).ToListAsync();
var fromDateUtc = DateTime.UtcNow.Date.AddDays(-LastShippingDays);
return await ctx.Shippings.GetAll(true).Where(s => s.ShippingDate >= fromDateUtc).ToListAsync();
//return await ctx.Shippings.Table.LoadWith(sd => sd.ShippingDocuments).ThenLoad(si => si.ShippingItems).ToListAsync();
}
[SignalR(SignalRTags.GetNotMeasuredShippings)]
public async Task<List<Shipping>> GetNotMeasuredShippings()
{
_logger.Detail($"GetNotMeasuredShippings invoked");
_logger.Detail($"GetNotMeasuredShippings invoked; lastDaysCount: {LastShippingDays}");
var startTime = DateTime.Now;
var shippings = await ctx.Shippings.GetAllNotMeasured(true, LastShippingDays).ToListAsync();
_logger.Detail($"GetNotMeasuredShippings; shippingsCount: {shippings.Count}; dbResponse: {(DateTime.Now - startTime).TotalSeconds} sec.");
return shippings;
return await ctx.Shippings.GetAllNotMeasured(true).ToListAsync();
}
[SignalR(SignalRTags.GetShippingById)]
@ -140,9 +151,11 @@ namespace Nop.Plugin.Misc.FruitBankPlugin.Controllers
[SignalR(SignalRTags.GetShippingItems)]
public async Task<List<ShippingItem>> GetShippingItems()
{
_logger.Detail($"GetShippingItems invoked");
_logger.Detail($"GetShippingItems invoked; lastDaysCount: {LastShippingDays}");
return await ctx.ShippingItems.GetAll(true).ToListAsync();
var fromDateUtc = DateTime.UtcNow.Date.AddDays(-LastShippingDays);
return await ctx.ShippingItems.GetAll(true).Where(si => si.ShippingDocument.Shipping == null ||
si.ShippingDocument.Shipping.ShippingDate >= fromDateUtc).ToListAsync();
}
[SignalR(SignalRTags.GetShippingItemsByDocumentId)]
@ -161,6 +174,14 @@ namespace Nop.Plugin.Misc.FruitBankPlugin.Controllers
return await ctx.ShippingItems.GetAllByShippingIdAsync(shippingId, true).ToListAsync();
}
[SignalR(SignalRTags.GetShippingItemsByPartnerId)]
public async Task<List<ShippingItem>> GetShippingItemsByPartnerId(int partnerId)
{
_logger.Detail($"GetShippingItemsByPartnerId invoked");
return await ctx.ShippingItems.GetAllByPartnerIdAsync(partnerId, true).ToListAsync();
}
[SignalR(SignalRTags.GetShippingItemById)]
public async Task<ShippingItem> GetShippingItemById(int id)
{
@ -203,6 +224,17 @@ namespace Nop.Plugin.Misc.FruitBankPlugin.Controllers
return await ctx.ShippingItems.GetByIdAsync(shippingItem.Id, shippingItem.ShippingDocument != null);
}
[SignalR(SignalRTags.GetShippingItemPallets)]
public async Task<List<ShippingItemPallet>> GetShippingItemPallets()
{
_logger.Detail($"GetShippingItemPallets invoked; lastDaysCount: {LastShippingDays}");
var fromDateUtc = DateTime.UtcNow.Date.AddDays(-LastShippingDays);
return await ctx.ShippingItemPallets.GetAll(true).Where(sip => sip.ShippingItem.ShippingDocument.Shipping == null ||
sip.ShippingItem.ShippingDocument.Shipping.ShippingDate >= fromDateUtc).ToListAsync();
}
[SignalR(SignalRTags.AddShippingItemPallet)]
public async Task<ShippingItemPallet> AddShippingItemPallet(ShippingItemPallet shippingItemPallet)
{
@ -259,9 +291,10 @@ namespace Nop.Plugin.Misc.FruitBankPlugin.Controllers
[SignalR(SignalRTags.GetShippingDocuments)]
public async Task<List<ShippingDocument>> GetShippingDocuments()
{
_logger.Detail($"GetShippingDocuments invoked");
_logger.Detail($"GetShippingDocuments invoked; lastDaysCount: {LastShippingDays}");
return await ctx.ShippingDocuments.GetAll(true).ToListAsync();
var fromDateUtc = DateTime.UtcNow.Date.AddDays(-LastShippingDays);
return await ctx.ShippingDocuments.GetAll(true).Where(sd => sd.Shipping == null || sd.Shipping.ShippingDate >= fromDateUtc).ToListAsync();
}
[SignalR(SignalRTags.GetShippingDocumentById)]

View File

@ -21,6 +21,7 @@ public class OrderItemDtoDbTable : MgDtoDbTableBase<OrderItemDto, OrderItem>
{
return GetAll()
.LoadWith(oi => oi.GenericAttributes)
.LoadWith(oi => oi.OrderDto).ThenLoad(o => o.Customer)
.LoadWith(oi => oi.OrderDto).ThenLoad(o => o.OrderNotes)
.LoadWith(oi => oi.OrderDto).ThenLoad(o => o.GenericAttributes)
.LoadWith(oi => oi.OrderItemPallets).ThenLoad(oip => oip.OrderItemDto).ThenLoad(oi => oi.GenericAttributes)
@ -29,8 +30,8 @@ public class OrderItemDtoDbTable : MgDtoDbTableBase<OrderItemDto, OrderItem>
public Task<OrderItemDto> GetByIdAsync(int orderItemId, bool loadRelations) => GetAll(loadRelations).Where(oi => oi.Id == orderItemId).FirstOrDefaultAsync(null);
public IQueryable<OrderItemDto> GetAllByOrderId(int orderId, bool loadRelations = true)=> GetAll(loadRelations).Where(oi => oi.OrderId == orderId);
public IQueryable<OrderItemDto> GetAllByProductId(int productId, bool loadRelations = true)=> GetAll(loadRelations).Where(oi => oi.ProductId == productId);
public IQueryable<OrderItemDto> GetAllByOrderId(int orderId, bool loadRelations = true) => GetAll(loadRelations).Where(oi => oi.OrderId == orderId);
public IQueryable<OrderItemDto> GetAllByProductId(int productId, bool loadRelations = true) => GetAll(loadRelations).Where(oi => oi.ProductId == productId);
public IQueryable<OrderItemDto> GetAllByIds(IEnumerable<int> orderItemIds, bool loadRelations = true) => GetAll(loadRelations).Where(oi => orderItemIds.Contains(oi.Id));
public IQueryable<OrderItemDto> GetAllByOrderIds(IEnumerable<int> orderIds, bool loadRelations = true) => GetAll(loadRelations).Where(oi => orderIds.Contains(oi.OrderId));

View File

@ -31,8 +31,8 @@ public class ShippingDbTable : MgDbTableBase<Shipping>
: GetAll();
}
public IQueryable<Shipping> GetAllNotMeasured(bool loadRelations)
=> GetAll(loadRelations).Where(s => !s.IsAllMeasured || s.MeasuredDate == null || s.MeasuredDate < DateTime.Now.AddDays(1000));
public IQueryable<Shipping> GetAllNotMeasured(bool loadRelations, int lastDaysCount)
=> GetAll(loadRelations).Where(s => !s.IsAllMeasured || s.MeasuredDate == null || s.MeasuredDate >= DateTime.Now.AddDays(-lastDaysCount));
public Task<Shipping> GetByIdAsync(int id, bool loadRelations)

View File

@ -62,6 +62,9 @@ public class ShippingItemDbTable : MgDbTableBase<ShippingItem>
public IQueryable<ShippingItem> GetAllByShippingIdAsync(int shippingId, bool loadRelations)
=> GetAll(loadRelations).Where(si => si.ShippingDocument.ShippingId == shippingId);
public IQueryable<ShippingItem> GetAllByPartnerIdAsync(int partnerId, bool loadRelations)
=> GetAll(loadRelations).Where(si => si.ShippingDocument.PartnerId == partnerId);
private static void PrepareValues(ShippingItem shippingItem)
{
if (shippingItem.MeasuringCount < 1) shippingItem.MeasuringCount = 1;

View File

@ -23,6 +23,7 @@ public class ShippingItemPalletDbTable : MeasuringItemPalletBaseDbTable<Shipping
return loadRelations
? GetAll()
.LoadWith(sip => sip.ShippingItem).ThenLoad(si => si.ProductDto).ThenLoad(prod => prod.GenericAttributes)
.LoadWith(sip => sip.ShippingItem).ThenLoad(si => si.ShippingDocument).ThenLoad(sd => sd.Shipping)
//.LoadWith(sip => sip.ShippingItem).ThenLoad(si => si.ShippingDocument).ThenLoad(sd => sd.Shipping)
//.LoadWith(sip => sip.ShippingItem).ThenLoad(si => si.ShippingDocument).ThenLoad(p => p.Partner)
//.LoadWith(sip => sip.ShippingItem).ThenLoad(si => si.ShippingDocument).ThenLoad(sd => sd.ShippingDocumentToFiles).ThenLoad(sdtof => sdtof.ShippingDocumentFile)

View File

@ -119,7 +119,7 @@ public class PluginNopStartup : INopStartup
services.AddSignalR(hubOptions =>
{
//hubOptions.EnableDetailedErrors = true;
hubOptions.EnableDetailedErrors = true;
hubOptions.MaximumReceiveMessageSize = null; // 256 * 1024;
hubOptions.KeepAliveInterval = TimeSpan.FromSeconds(FruitBankConstClient.SignalRKeepAliveIntervalSecond);
hubOptions.ClientTimeoutInterval = TimeSpan.FromSeconds(FruitBankConstClient.SignarlRTimeoutIntervalSecond);