diff --git a/Nop.Plugin.Misc.AIPlugin/Controllers/FruitBankDataController.cs b/Nop.Plugin.Misc.AIPlugin/Controllers/FruitBankDataController.cs index 78e9b2d..e343c73 100644 --- a/Nop.Plugin.Misc.AIPlugin/Controllers/FruitBankDataController.cs +++ b/Nop.Plugin.Misc.AIPlugin/Controllers/FruitBankDataController.cs @@ -263,6 +263,50 @@ namespace Nop.Plugin.Misc.FruitBankPlugin.Controllers return await ctx.PartnerDepots.GetByIdAsync(partnerDepot.Id, true); } + [SignalR(SignalRTags.GetEkaerHistories)] + public async Task> GetEkaerHistories() + { + _logger.Detail($"GetEkaerHistories invoked"); + + return await ctx.EkaerHistories.GetAll().ToListAsync(); + } + + [SignalR(SignalRTags.GetEkaerHistoryById)] + public async Task GetEkaerHistoryById(int id) + { + _logger.Detail($"GetEkaerHistoryById invoked; id: {id}"); + return await ctx.EkaerHistories.GetByIdAsync(id); + } + + [SignalR(SignalRTags.GetEkaerHistoriesByForeignKey)] + public async Task> GetEkaerHistoriesByForeignKey(int foreignKey) + { + _logger.Detail($"GetEkaerHistoriesByForeignKey invoked; foreignKey: {foreignKey}"); + return await ctx.EkaerHistories.GetByForeignKey(foreignKey).ToListAsync(); + } + + [SignalR(SignalRTags.AddEkaerHistory)] + public async Task AddEkaerHistory(EkaerHistory ekaerHistory) + { + ArgumentNullException.ThrowIfNull(ekaerHistory); + + _logger.Detail($"AddEkaerHistory invoked; id: {ekaerHistory.Id}"); + + await ctx.EkaerHistories.InsertAsync(ekaerHistory); + return await ctx.EkaerHistories.GetByIdAsync(ekaerHistory.Id); + } + + [SignalR(SignalRTags.UpdateEkaerHistory)] + public async Task UpdateEkaerHistory(EkaerHistory ekaerHistory) + { + ArgumentNullException.ThrowIfNull(ekaerHistory); + + _logger.Detail($"UpdateEkaerHistory invoked; id: {ekaerHistory.Id}"); + + await ctx.EkaerHistories.UpdateAsync(ekaerHistory); + return await ctx.EkaerHistories.GetByIdAsync(ekaerHistory.Id); + } + [SignalR(SignalRTags.GetShippings)] public async Task> GetShippings() { diff --git a/Nop.Plugin.Misc.AIPlugin/Domains/DataLayer/EkaerHistoryDbTable.cs b/Nop.Plugin.Misc.AIPlugin/Domains/DataLayer/EkaerHistoryDbTable.cs new file mode 100644 index 0000000..3e4923f --- /dev/null +++ b/Nop.Plugin.Misc.AIPlugin/Domains/DataLayer/EkaerHistoryDbTable.cs @@ -0,0 +1,23 @@ +using FruitBank.Common.Entities; +using LinqToDB; +using Mango.Nop.Data.Repositories; +using Nop.Core.Caching; +using Nop.Core.Configuration; +using Nop.Core.Events; +using Nop.Data; + +namespace Nop.Plugin.Misc.FruitBankPlugin.Domains.DataLayer; + +public class EkaerHistoryDbTable : MgDbTableBase +{ + public EkaerHistoryDbTable(IEventPublisher eventPublisher, INopDataProvider dataProvider, IShortTermCacheManager shortTermCacheManager, IStaticCacheManager staticCacheManager, AppSettings appSettings) + : base(eventPublisher, dataProvider, shortTermCacheManager, staticCacheManager, appSettings) + { + } + + // History tábla: legújabb elöl. Nincs asszociáció → nincs LoadWith / loadRelations. + public override IOrderedQueryable GetAll() => base.GetAll().OrderByDescending(p => p.Id); + + public Task GetByIdAsync(int id) => GetAll().FirstOrDefaultAsync(p => p.Id == id); + public IQueryable GetByForeignKey(int foreignKey) => GetAll().Where(p => p.ForeignKey == foreignKey); +} diff --git a/Nop.Plugin.Misc.AIPlugin/Domains/DataLayer/FruitBankDbContext.cs b/Nop.Plugin.Misc.AIPlugin/Domains/DataLayer/FruitBankDbContext.cs index f3b9ffc..211361c 100644 --- a/Nop.Plugin.Misc.AIPlugin/Domains/DataLayer/FruitBankDbContext.cs +++ b/Nop.Plugin.Misc.AIPlugin/Domains/DataLayer/FruitBankDbContext.cs @@ -56,6 +56,7 @@ public class FruitBankDbContext : MgDbContextBase, public PartnerDbTable Partners { get; set; } public PartnerDepotDbTable PartnerDepots { get; set; } + public EkaerHistoryDbTable EkaerHistories { get; set; } public CargoPartnerDbTable CargoPartners { get; set; } public CargoTruckDbTable CargoTrucks{ get; set; } @@ -82,7 +83,7 @@ public class FruitBankDbContext : MgDbContextBase, public IRepository StockQuantityHistoriesExt { get; set; } public FruitBankDbContext(INopDataProvider dataProvider, ILockService lockService, FruitBankAttributeService fruitBankAttributeService, IStoreContext storeContext, - CargoPartnerDbTable cargoPartnerDbTable, CargoTruckDbTable cargoTruckDbTable, PartnerDbTable partnerDbTable, PartnerDepotDbTable partnerDepotDbTable, ShippingDbTable shippingDbTable, ShippingDocumentDbTable shippingDocumentDbTable, ShippingItemDbTable shippingItemDbTable, + CargoPartnerDbTable cargoPartnerDbTable, CargoTruckDbTable cargoTruckDbTable, PartnerDbTable partnerDbTable, PartnerDepotDbTable partnerDepotDbTable, EkaerHistoryDbTable ekaerHistoryDbTable, ShippingDbTable shippingDbTable, ShippingDocumentDbTable shippingDocumentDbTable, ShippingItemDbTable shippingItemDbTable, ShippingItemPalletDbTable shippingItemPalletDbTable, FilesDbTable filesDbTable, ShippingDocumentToFilesDbTable shippingDocumentToFilesDbTable, ProductDtoDbTable productDtoDbTable, OrderDtoDbTable orderDtoDbTable, OrderItemDtoDbTable orderItemDtoDbTable, OrderItemPalletDbTable orderItemPalletDbTable, StockQuantityHistoryDtoDbTable stockQuantityHistoryDtos, CustomerCreditDbTable customerCreditDbTable, @@ -110,6 +111,7 @@ public class FruitBankDbContext : MgDbContextBase, Files = filesDbTable; Partners = partnerDbTable; PartnerDepots = partnerDepotDbTable; + EkaerHistories = ekaerHistoryDbTable; CargoPartners = cargoPartnerDbTable; CargoTrucks = cargoTruckDbTable; diff --git a/Nop.Plugin.Misc.AIPlugin/Infrastructure/PluginNopStartup.cs b/Nop.Plugin.Misc.AIPlugin/Infrastructure/PluginNopStartup.cs index 20a7476..6dc44bd 100644 --- a/Nop.Plugin.Misc.AIPlugin/Infrastructure/PluginNopStartup.cs +++ b/Nop.Plugin.Misc.AIPlugin/Infrastructure/PluginNopStartup.cs @@ -84,6 +84,7 @@ public class PluginNopStartup : INopStartup services.AddScoped(); services.AddScoped(); + services.AddScoped(); services.AddScoped(); services.AddScoped();