improvements, fixes, etc....

This commit is contained in:
Loretta 2025-09-07 13:39:55 +02:00
parent 268ec3f7f4
commit fbad15e02f
5 changed files with 47 additions and 4 deletions

View File

@ -11,6 +11,7 @@ using Nop.Plugin.Misc.FruitBankPlugin.Domains.DataLayer;
namespace Nop.Plugin.Misc.FruitBankPlugin.Controllers
{
//https://linq2db.github.io/articles/sql/Join-Operators.html
public class FruitBankDataController(FruitBankDbContext ctx, IEnumerable<IAcLogWriterBase> logWriters): Controller, IFruitBankDataControllerServer
{
private readonly ILogger _logger = new Logger<FruitBankDataController>(logWriters.ToArray());
@ -25,7 +26,7 @@ namespace Nop.Plugin.Misc.FruitBankPlugin.Controllers
[SignalR(SignalRTags.GetMeasuringModelByShippingId)]
public async Task<MeasuringModel> GetMeasuringModelByShippingId(int shippingId)
{
throw new NotImplementedException("GetMeasuringModelByShippingId");
return await ctx.GetMeasuringModelByShippingId(shippingId);
}
[SignalR(SignalRTags.GetPartners)]

View File

@ -1,4 +1,5 @@
using Mango.Nop.Core.Repositories;
using FruitBank.Common.Models;
using Mango.Nop.Core.Repositories;
using Nop.Core.Caching;
using Nop.Data;
using Nop.Plugin.Misc.FruitBankPlugin.Domains.DataLayer.Interfaces;
@ -7,29 +8,42 @@ using Nop.Services.Logging;
namespace Nop.Plugin.Misc.FruitBankPlugin.Domains.DataLayer;
public class FruitBankDbContext : MgDbContextBase, IPartnerDbSet<PartnerDbTable>, IShippingDbSet<ShippingDbTable>
public class FruitBankDbContext : MgDbContextBase, IPartnerDbSet<PartnerDbTable>, IShippingDbSet<ShippingDbTable>, IShippingItemDbSet<ShippingItemDbTable>
{
private readonly IProductService _productService;
private readonly IStaticCacheManager _staticCacheManager;
public PartnerDbTable Partners { get; set; }
public ShippingDbTable Shippings { get; set; }
public ShippingItemDbTable ShippingItems { get; set; }
//public EntityRepository<Auction> Auctions2 { get; set; }
//public IRepository<AuctionBid> AuctionBids2 { get; set; }
public FruitBankDbContext(INopDataProvider dataProvider, PartnerDbTable partnerDbTable, ShippingDbTable shippingDbTable, IProductService productService, IStaticCacheManager staticCacheManager, ILogger logger) : base(dataProvider, logger)
public FruitBankDbContext(INopDataProvider dataProvider, PartnerDbTable partnerDbTable, ShippingDbTable shippingDbTable, ShippingItemDbTable shippingItemDbTable, IProductService productService, IStaticCacheManager staticCacheManager, ILogger logger) : base(dataProvider, logger)
{
_productService = productService;
_staticCacheManager = staticCacheManager;
Partners = partnerDbTable;
Shippings = shippingDbTable;
ShippingItems = shippingItemDbTable;
//Auctions.Table
//var auctions = DataProvider.GetTable<Auction>().Where(x => x.Closed);
}
public async Task<MeasuringModel> GetMeasuringModelByShippingId(int shippingId)
{
var query =
from p in Partners.Table
join s in Shippings.Table on p.Id equals s.PartnerId
where s.Id == shippingId
select new MeasuringModel(p.Name);
return await query.FirstOrDefaultAsync();
}
////public AuctionDbContext(IRepository<Auction> _auctionRepository, IRepository<AuctionBid> _auctionBidRepository)
////{
//// Auctions2 = _auctionRepository as EntityRepository<Auction>;

View File

@ -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 IShippingItemDbSet<TDbTable> : IMgDbTableBase where TDbTable : IRepository<ShippingItem>
{
public TDbTable ShippingItems { get; set; }
}

View File

@ -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 ShippingItemDbTable : MgDbTableBase<ShippingItem>
{
public ShippingItemDbTable(IEventPublisher eventPublisher, INopDataProvider dataProvider, IShortTermCacheManager shortTermCacheManager, IStaticCacheManager staticCacheManager, AppSettings appSettings, ILogger logger)
: base(eventPublisher, dataProvider, shortTermCacheManager, staticCacheManager, appSettings, logger)
{
}
}

View File

@ -44,6 +44,7 @@ public class PluginNopStartup : INopStartup
services.AddScoped<PartnerDbTable>();
services.AddScoped<ShippingDbTable>();
services.AddScoped<ShippingItemDbTable>();
services.AddScoped<FruitBankDbContext>();
services.AddScoped<IFruitBankDataControllerServer, FruitBankDataController>();