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");
|
_logger.Detail($"GetCargoPartners invoked");
|
||||||
|
|
||||||
return await ctx.CargoPartners.GetAll().ToListAsync();
|
return await ctx.CargoPartners.GetAll(true).ToListAsync();
|
||||||
}
|
}
|
||||||
|
|
||||||
[SignalR(SignalRTags.GetCargoPartnerById)]
|
[SignalR(SignalRTags.GetCargoPartnerById)]
|
||||||
public async Task<CargoPartner> GetCargoPartnerById(int id)
|
public async Task<CargoPartner> GetCargoPartnerById(int id)
|
||||||
{
|
{
|
||||||
_logger.Detail($"GetCargoPartnerById invoked; id: {id}");
|
_logger.Detail($"GetCargoPartnerById invoked; id: {id}");
|
||||||
return await ctx.CargoPartners.GetByIdAsync(id);
|
return await ctx.CargoPartners.GetByIdAsync(id, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
[SignalR(SignalRTags.AddCargoPartner)]
|
[SignalR(SignalRTags.AddCargoPartner)]
|
||||||
|
|
@ -180,7 +180,7 @@ namespace Nop.Plugin.Misc.FruitBankPlugin.Controllers
|
||||||
{
|
{
|
||||||
_logger.Detail($"GetCargoTrucks invoked");
|
_logger.Detail($"GetCargoTrucks invoked");
|
||||||
|
|
||||||
return await ctx.CargoTrucks.GetAll().ToListAsync();
|
return await ctx.CargoTrucks.GetAll(true).ToListAsync();
|
||||||
}
|
}
|
||||||
|
|
||||||
[SignalR(SignalRTags.GetCargoTruckById)]
|
[SignalR(SignalRTags.GetCargoTruckById)]
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,11 @@ public class CargoPartnerDbTable : MgDbTableBase<CargoPartner>
|
||||||
|
|
||||||
public IQueryable<CargoPartner> GetAll(bool loadRelations)
|
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);
|
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
|
return loadRelations
|
||||||
? GetAll()
|
? 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.ShippingItemPallets)
|
||||||
.LoadWith(s => s.ShippingDocuments).ThenLoad(sd => sd.ShippingItems).ThenLoad(si => si.Pallet)
|
.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.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.ShippingDocumentToFiles).ThenLoad(sdtof => sdtof.ShippingDocumentFile)
|
||||||
.LoadWith(s => s.ShippingDocuments).ThenLoad(sd => sd.Partner)
|
|
||||||
: GetAll();
|
: GetAll();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,9 @@ public class ShippingDocumentDbTable : MgDbTableBase<ShippingDocument>
|
||||||
return loadRelations
|
return loadRelations
|
||||||
? GetAll()
|
? GetAll()
|
||||||
.LoadWith(sd => sd.Shipping)
|
.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.Pallet)
|
||||||
.LoadWith(sd => sd.ShippingItems).ThenLoad(si => si.ProductDto).ThenLoad(prod => prod.GenericAttributes)
|
.LoadWith(sd => sd.ShippingItems).ThenLoad(si => si.ProductDto).ThenLoad(prod => prod.GenericAttributes)
|
||||||
.LoadWith(sd => sd.ShippingItems).ThenLoad(si => si.ShippingItemPallets)
|
.LoadWith(sd => sd.ShippingItems).ThenLoad(si => si.ShippingItemPallets)
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue