From 268ec3f7f4b5b32e1d4db4592d7d1c8e61b45d76 Mon Sep 17 00:00:00 2001 From: Loretta Date: Sun, 7 Sep 2025 07:04:03 +0200 Subject: [PATCH] improvements, refactroing, etc... --- .../Controllers/FruitBankDataController.cs | 67 +++++++++++++++++-- .../Domains/DataLayer/FruitBankDbContext.cs | 6 +- .../DataLayer/Interfaces/IPartnerDbSet.cs | 4 +- .../DataLayer/Interfaces/IShippingDbSet.cs | 10 +++ .../Domains/DataLayer/PartnerDbTable.cs | 4 +- .../Domains/DataLayer/ShippingDbTable.cs | 17 +++++ .../Domains/Entities/Partner.cs | 22 ------ .../Domains/Entities/Shipping.cs | 18 ----- .../Domains/Entities/ShippingDocument.cs | 20 ------ .../Domains/Entities/ShippingItem.cs | 21 ------ .../Infrastructure/PluginNopStartup.cs | 2 + .../Mapping/NameCompatibility.cs | 13 ++-- .../Nop.Plugin.Misc.FruitBankPlugin.csproj | 1 + 13 files changed, 107 insertions(+), 98 deletions(-) create mode 100644 Nop.Plugin.Misc.AIPlugin/Domains/DataLayer/Interfaces/IShippingDbSet.cs create mode 100644 Nop.Plugin.Misc.AIPlugin/Domains/DataLayer/ShippingDbTable.cs delete mode 100644 Nop.Plugin.Misc.AIPlugin/Domains/Entities/Partner.cs delete mode 100644 Nop.Plugin.Misc.AIPlugin/Domains/Entities/Shipping.cs delete mode 100644 Nop.Plugin.Misc.AIPlugin/Domains/Entities/ShippingDocument.cs delete mode 100644 Nop.Plugin.Misc.AIPlugin/Domains/Entities/ShippingItem.cs diff --git a/Nop.Plugin.Misc.AIPlugin/Controllers/FruitBankDataController.cs b/Nop.Plugin.Misc.AIPlugin/Controllers/FruitBankDataController.cs index 4235e88..69530fc 100644 --- a/Nop.Plugin.Misc.AIPlugin/Controllers/FruitBankDataController.cs +++ b/Nop.Plugin.Misc.AIPlugin/Controllers/FruitBankDataController.cs @@ -1,5 +1,7 @@ using AyCode.Core.Loggers; using AyCode.Services.SignalRs; +using DocumentFormat.OpenXml.Office2010.Excel; +using FruitBank.Common.Entities; using FruitBank.Common.Interfaces; using FruitBank.Common.Loggers; using FruitBank.Common.Models; @@ -14,13 +16,68 @@ namespace Nop.Plugin.Misc.FruitBankPlugin.Controllers private readonly ILogger _logger = new Logger(logWriters.ToArray()); - [SignalR(SignalRTags.GetMeasuringModel)] - public async Task GetMeasuringModel() + [SignalR(SignalRTags.GetMeasuringModels)] + public async Task> GetMeasuringModels() { - _logger.Detail($"GetMeasuringModel invoked"); + throw new NotImplementedException("GetMeasuringModels"); + } - var partner = await ctx.Partners.Table.FirstOrDefaultAsync(); - return new MeasuringModel($"GetMeasuringModel invoked [{DateTime.Now}] [{partner?.Name}]"); + [SignalR(SignalRTags.GetMeasuringModelByShippingId)] + public async Task GetMeasuringModelByShippingId(int shippingId) + { + throw new NotImplementedException("GetMeasuringModelByShippingId"); + } + + [SignalR(SignalRTags.GetPartners)] + public async Task> GetPartners() + { + _logger.Detail($"GetPartners invoked"); + + return await ctx.Partners.Table.ToListAsync(); + } + + [SignalR(SignalRTags.GetPartnerById)] + public async Task GetPartnerById(int id) + { + _logger.Detail($"GetPartnerById invoked; id: {id}"); + + return await ctx.Partners.GetByIdAsync(id); + } + + [SignalR(SignalRTags.GetShippings)] + public async Task> GetShippings() + { + _logger.Detail($"GetShippings invoked"); + + return await ctx.Shippings.Table.ToListAsync(); + } + + [SignalR(SignalRTags.GetShippingById)] + public async Task GetShippingById(int id) + { + _logger.Detail($"GetShippingById invoked; id: {id}"); + + return await ctx.Shippings.GetByIdAsync(id); + } + + public async Task> GetShippingItem() + { + throw new NotImplementedException(); + } + + public async Task GetShippingItemById(int id) + { + throw new NotImplementedException(); + } + + public async Task> GetShippingDocuments() + { + throw new NotImplementedException(); + } + + public async Task GetShippingDocumentById(int id) + { + throw new NotImplementedException(); } } } diff --git a/Nop.Plugin.Misc.AIPlugin/Domains/DataLayer/FruitBankDbContext.cs b/Nop.Plugin.Misc.AIPlugin/Domains/DataLayer/FruitBankDbContext.cs index d1cb3a8..deea043 100644 --- a/Nop.Plugin.Misc.AIPlugin/Domains/DataLayer/FruitBankDbContext.cs +++ b/Nop.Plugin.Misc.AIPlugin/Domains/DataLayer/FruitBankDbContext.cs @@ -7,22 +7,24 @@ using Nop.Services.Logging; namespace Nop.Plugin.Misc.FruitBankPlugin.Domains.DataLayer; -public class FruitBankDbContext : MgDbContextBase, IPartnerDbSet +public class FruitBankDbContext : MgDbContextBase, IPartnerDbSet, IShippingDbSet { private readonly IProductService _productService; private readonly IStaticCacheManager _staticCacheManager; public PartnerDbTable Partners { get; set; } + public ShippingDbTable Shippings { get; set; } //public EntityRepository Auctions2 { get; set; } //public IRepository AuctionBids2 { get; set; } - public FruitBankDbContext(INopDataProvider dataProvider, PartnerDbTable partnerDbTable, IProductService productService, IStaticCacheManager staticCacheManager, ILogger logger) : base(dataProvider, logger) + public FruitBankDbContext(INopDataProvider dataProvider, PartnerDbTable partnerDbTable, ShippingDbTable shippingDbTable, IProductService productService, IStaticCacheManager staticCacheManager, ILogger logger) : base(dataProvider, logger) { _productService = productService; _staticCacheManager = staticCacheManager; Partners = partnerDbTable; + Shippings = shippingDbTable; //Auctions.Table //var auctions = DataProvider.GetTable().Where(x => x.Closed); diff --git a/Nop.Plugin.Misc.AIPlugin/Domains/DataLayer/Interfaces/IPartnerDbSet.cs b/Nop.Plugin.Misc.AIPlugin/Domains/DataLayer/Interfaces/IPartnerDbSet.cs index 263a4bf..f128def 100644 --- a/Nop.Plugin.Misc.AIPlugin/Domains/DataLayer/Interfaces/IPartnerDbSet.cs +++ b/Nop.Plugin.Misc.AIPlugin/Domains/DataLayer/Interfaces/IPartnerDbSet.cs @@ -1,6 +1,6 @@ -using Mango.Nop.Core.Interfaces; +using FruitBank.Common.Entities; +using Mango.Nop.Core.Interfaces; using Nop.Data; -using Nop.Plugin.Misc.FruitBankPlugin.Domains.Entities; namespace Nop.Plugin.Misc.FruitBankPlugin.Domains.DataLayer.Interfaces; diff --git a/Nop.Plugin.Misc.AIPlugin/Domains/DataLayer/Interfaces/IShippingDbSet.cs b/Nop.Plugin.Misc.AIPlugin/Domains/DataLayer/Interfaces/IShippingDbSet.cs new file mode 100644 index 0000000..7d885a4 --- /dev/null +++ b/Nop.Plugin.Misc.AIPlugin/Domains/DataLayer/Interfaces/IShippingDbSet.cs @@ -0,0 +1,10 @@ +using FruitBank.Common.Entities; +using Mango.Nop.Core.Interfaces; +using Nop.Data; + +namespace Nop.Plugin.Misc.FruitBankPlugin.Domains.DataLayer.Interfaces; + +public interface IShippingDbSet : IMgDbTableBase where TDbTable : IRepository +{ + public TDbTable Shippings { get; set; } +} \ No newline at end of file diff --git a/Nop.Plugin.Misc.AIPlugin/Domains/DataLayer/PartnerDbTable.cs b/Nop.Plugin.Misc.AIPlugin/Domains/DataLayer/PartnerDbTable.cs index 229415d..c323fa8 100644 --- a/Nop.Plugin.Misc.AIPlugin/Domains/DataLayer/PartnerDbTable.cs +++ b/Nop.Plugin.Misc.AIPlugin/Domains/DataLayer/PartnerDbTable.cs @@ -1,9 +1,9 @@ -using Mango.Nop.Core.Repositories; +using FruitBank.Common.Entities; +using Mango.Nop.Core.Repositories; using Nop.Core.Caching; using Nop.Core.Configuration; using Nop.Core.Events; using Nop.Data; -using Nop.Plugin.Misc.FruitBankPlugin.Domains.Entities; using Nop.Services.Logging; namespace Nop.Plugin.Misc.FruitBankPlugin.Domains.DataLayer; diff --git a/Nop.Plugin.Misc.AIPlugin/Domains/DataLayer/ShippingDbTable.cs b/Nop.Plugin.Misc.AIPlugin/Domains/DataLayer/ShippingDbTable.cs new file mode 100644 index 0000000..c667803 --- /dev/null +++ b/Nop.Plugin.Misc.AIPlugin/Domains/DataLayer/ShippingDbTable.cs @@ -0,0 +1,17 @@ +using FruitBank.Common.Entities; +using Mango.Nop.Core.Repositories; +using Nop.Core.Caching; +using Nop.Core.Configuration; +using Nop.Core.Events; +using Nop.Data; +using Nop.Services.Logging; + +namespace Nop.Plugin.Misc.FruitBankPlugin.Domains.DataLayer; + +public class ShippingDbTable : MgDbTableBase +{ + public ShippingDbTable(IEventPublisher eventPublisher, INopDataProvider dataProvider, IShortTermCacheManager shortTermCacheManager, IStaticCacheManager staticCacheManager, AppSettings appSettings, ILogger logger) + : base(eventPublisher, dataProvider, shortTermCacheManager, staticCacheManager, appSettings, logger) + { + } +} \ No newline at end of file diff --git a/Nop.Plugin.Misc.AIPlugin/Domains/Entities/Partner.cs b/Nop.Plugin.Misc.AIPlugin/Domains/Entities/Partner.cs deleted file mode 100644 index 637f194..0000000 --- a/Nop.Plugin.Misc.AIPlugin/Domains/Entities/Partner.cs +++ /dev/null @@ -1,22 +0,0 @@ -using FruitBank.Common.Entities; -using LinqToDB.Mapping; -using Mango.Nop.Core.Entities; - -namespace Nop.Plugin.Misc.FruitBankPlugin.Domains.Entities; - -[Table(Name = "fbPartner")] -public class Partner : MgEntityBase, IPartner -{ - public int Id { get; set; } - public string Name { get; set; } - public string PostalCode { get; set; } - public string Country { get; set; } - public string State { get; set; } - public string County { get; set; } - public string City { get; set; } - public string Street { get; set; } - - [SkipValuesOnUpdate] - public DateTime Created { get; set; } - public DateTime Modified { get; set; } -} \ No newline at end of file diff --git a/Nop.Plugin.Misc.AIPlugin/Domains/Entities/Shipping.cs b/Nop.Plugin.Misc.AIPlugin/Domains/Entities/Shipping.cs deleted file mode 100644 index 579efe8..0000000 --- a/Nop.Plugin.Misc.AIPlugin/Domains/Entities/Shipping.cs +++ /dev/null @@ -1,18 +0,0 @@ -using FruitBank.Common.Entities; -using LinqToDB.Mapping; -using Mango.Nop.Core.Entities; - -namespace Nop.Plugin.Misc.FruitBankPlugin.Domains.Entities; - -[Table(Name = "fbShipping")] -public class Shipping : MgEntityBase, IShipping -{ - public int Id { get; set; } - public int PartnerId { get; set; } - public DateTime ShippingDate { get; set; } - public string LicencePlate { get; set; } - - [SkipValuesOnUpdate] - public DateTime Created { get; set; } - public DateTime Modified { get; set; } -} \ No newline at end of file diff --git a/Nop.Plugin.Misc.AIPlugin/Domains/Entities/ShippingDocument.cs b/Nop.Plugin.Misc.AIPlugin/Domains/Entities/ShippingDocument.cs deleted file mode 100644 index ec2f612..0000000 --- a/Nop.Plugin.Misc.AIPlugin/Domains/Entities/ShippingDocument.cs +++ /dev/null @@ -1,20 +0,0 @@ -using FruitBank.Common.Entities; -using LinqToDB.Mapping; -using Mango.Nop.Core.Entities; - -namespace Nop.Plugin.Misc.FruitBankPlugin.Domains.Entities; - -[Table(Name = "fbShippingDocument")] -public class ShippingDocument : MgEntityBase, ISippingDocument -{ - public int Id { get; set; } - public int PartnerId { get; set; } - public int ShippingId { get; set; } - public int ShippingItemId { get; set; } - public DateTime ShippingDate { get; set; } - public string Country { get; set; } - - [SkipValuesOnUpdate] - public DateTime Created { get; set; } - public DateTime Modified { get; set; } -} \ No newline at end of file diff --git a/Nop.Plugin.Misc.AIPlugin/Domains/Entities/ShippingItem.cs b/Nop.Plugin.Misc.AIPlugin/Domains/Entities/ShippingItem.cs deleted file mode 100644 index d67a51a..0000000 --- a/Nop.Plugin.Misc.AIPlugin/Domains/Entities/ShippingItem.cs +++ /dev/null @@ -1,21 +0,0 @@ -using FruitBank.Common.Entities; -using LinqToDB.Mapping; -using Mango.Nop.Core.Entities; - -namespace Nop.Plugin.Misc.FruitBankPlugin.Domains.Entities; - -[Table(Name = "fbShippingItem")] -public class ShippingItem : MgEntityBase, IShippingItem -{ - public int Id { get; set; } - public int ShippingDocumentId { get; set; } - public string Name { get; set; } - public double NetWeight { get; set; } - public double GrossWeight { get; set; } - public double MeasuredNetWeight { get; set; } - public double MeasuredGrossWeight { get; set; } - - [SkipValuesOnUpdate] - public DateTime Created { get; set; } - public DateTime Modified { get; set; } -} \ No newline at end of file diff --git a/Nop.Plugin.Misc.AIPlugin/Infrastructure/PluginNopStartup.cs b/Nop.Plugin.Misc.AIPlugin/Infrastructure/PluginNopStartup.cs index ab776cd..fa43257 100644 --- a/Nop.Plugin.Misc.AIPlugin/Infrastructure/PluginNopStartup.cs +++ b/Nop.Plugin.Misc.AIPlugin/Infrastructure/PluginNopStartup.cs @@ -43,6 +43,8 @@ public class PluginNopStartup : INopStartup //services.AddSingleton(); services.AddScoped(); + services.AddScoped(); + services.AddScoped(); services.AddScoped(); diff --git a/Nop.Plugin.Misc.AIPlugin/Mapping/NameCompatibility.cs b/Nop.Plugin.Misc.AIPlugin/Mapping/NameCompatibility.cs index f5462f4..7d2cbed 100644 --- a/Nop.Plugin.Misc.AIPlugin/Mapping/NameCompatibility.cs +++ b/Nop.Plugin.Misc.AIPlugin/Mapping/NameCompatibility.cs @@ -1,5 +1,6 @@ -using Nop.Data.Mapping; -using Nop.Plugin.Misc.FruitBankPlugin.Domains.Entities; +using FruitBank.Common; +using FruitBank.Common.Entities; +using Nop.Data.Mapping; namespace Nop.Plugin.Misc.FruitBankPlugin.Mapping; @@ -10,10 +11,10 @@ public partial class NameCompatibility : INameCompatibility /// public Dictionary TableNames => new Dictionary { - { typeof(Partner), "fbPartner" }, - { typeof(Shipping), "fbShipping" }, - { typeof(ShippingItem), "fbShippingItem" }, - { typeof(ShippingDocument), "fbShippingDocument" }, + { typeof(Partner), FruitBankConstClient.PartnerDbTableName }, + { typeof(Shipping), FruitBankConstClient.ShippingDbTableName }, + { typeof(ShippingItem), FruitBankConstClient.ShippingItemDbTableName}, + { typeof(ShippingDocument), FruitBankConstClient.ShippingDocumentDbTableName }, }; diff --git a/Nop.Plugin.Misc.AIPlugin/Nop.Plugin.Misc.FruitBankPlugin.csproj b/Nop.Plugin.Misc.AIPlugin/Nop.Plugin.Misc.FruitBankPlugin.csproj index a73db8b..bbc516c 100644 --- a/Nop.Plugin.Misc.AIPlugin/Nop.Plugin.Misc.FruitBankPlugin.csproj +++ b/Nop.Plugin.Misc.AIPlugin/Nop.Plugin.Misc.FruitBankPlugin.csproj @@ -53,6 +53,7 @@ +