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:
parent
1b8d2a6aa0
commit
2442094a08
|
|
@ -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)]
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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
Loading…
Reference in New Issue