Add CargoPartner/CargoTruck relations and eager loading

- Updated controllers and DbTables to support eager loading of CargoPartner and CargoTruck relations.
- Enhanced Shipping and ShippingDocument queries to include related transport entities.
- Extended SCHEMA.md with CargoPartner, CargoTruck, and updated Shipping schema details.
This commit is contained in:
Loretta 2026-05-31 14:01:58 +02:00
parent 1b8d2a6aa0
commit 2442094a08
5 changed files with 75 additions and 9 deletions

View File

@ -142,14 +142,14 @@ namespace Nop.Plugin.Misc.FruitBankPlugin.Controllers
{
_logger.Detail($"GetCargoPartners invoked");
return await ctx.CargoPartners.GetAll().ToListAsync();
return await ctx.CargoPartners.GetAll(true).ToListAsync();
}
[SignalR(SignalRTags.GetCargoPartnerById)]
public async Task<CargoPartner> GetCargoPartnerById(int id)
{
_logger.Detail($"GetCargoPartnerById invoked; id: {id}");
return await ctx.CargoPartners.GetByIdAsync(id);
return await ctx.CargoPartners.GetByIdAsync(id, true);
}
[SignalR(SignalRTags.AddCargoPartner)]
@ -180,7 +180,7 @@ namespace Nop.Plugin.Misc.FruitBankPlugin.Controllers
{
_logger.Detail($"GetCargoTrucks invoked");
return await ctx.CargoTrucks.GetAll().ToListAsync();
return await ctx.CargoTrucks.GetAll(true).ToListAsync();
}
[SignalR(SignalRTags.GetCargoTruckById)]

View File

@ -19,7 +19,11 @@ public class CargoPartnerDbTable : MgDbTableBase<CargoPartner>
public IQueryable<CargoPartner> GetAll(bool loadRelations)
{
return loadRelations ? GetAll().LoadWith(sd => sd.CargoTrucks) : GetAll();
return loadRelations ?
GetAll()
.LoadWith(sd => sd.CargoTrucks)
//.LoadWith(sd => sd.Shippings)
: GetAll();
}
public Task<CargoPartner> GetByIdAsync(int id, bool loadRelations) => GetAll(loadRelations).FirstOrDefaultAsync(p => p.Id == id);

View File

@ -23,11 +23,14 @@ public class ShippingDbTable : MgDbTableBase<Shipping>
{
return loadRelations
? GetAll()
.LoadWith(s => s.CargoPartner)
.LoadWith(s => s.CargoTruck)
.LoadWith(s => s.CargoTrailer)
.LoadWith(s => s.ShippingDocuments).ThenLoad(sd => sd.Partner)
.LoadWith(s => s.ShippingDocuments).ThenLoad(sd => sd.ShippingItems).ThenLoad(si => si.ShippingItemPallets)
.LoadWith(s => s.ShippingDocuments).ThenLoad(sd => sd.ShippingItems).ThenLoad(si => si.Pallet)
.LoadWith(s => s.ShippingDocuments).ThenLoad(sd => sd.ShippingItems).ThenLoad(si => si.ProductDto).ThenLoad(prod => prod.GenericAttributes)
.LoadWith(s => s.ShippingDocuments).ThenLoad(sd => sd.ShippingDocumentToFiles).ThenLoad(sdtof => sdtof.ShippingDocumentFile)
.LoadWith(s => s.ShippingDocuments).ThenLoad(sd => sd.Partner)
: GetAll();
}

View File

@ -24,6 +24,9 @@ public class ShippingDocumentDbTable : MgDbTableBase<ShippingDocument>
return loadRelations
? GetAll()
.LoadWith(sd => sd.Shipping)
.LoadWith(sd => sd.Shipping).ThenLoad(s => s.CargoPartner)
.LoadWith(sd => sd.Shipping).ThenLoad(s => s.CargoTruck)
.LoadWith(sd => sd.Shipping).ThenLoad(s => s.CargoTrailer)
.LoadWith(sd => sd.ShippingItems).ThenLoad(si => si.Pallet)
.LoadWith(sd => sd.ShippingItems).ThenLoad(si => si.ProductDto).ThenLoad(prod => prod.GenericAttributes)
.LoadWith(sd => sd.ShippingItems).ThenLoad(si => si.ShippingItemPallets)

File diff suppressed because one or more lines are too long