From a7895a64bcd5b3b673afb4cc27348cb3337ec880 Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Fri, 14 May 2021 14:11:16 +0000 Subject: [PATCH] --- server/AyaNova/biz/WorkOrderBiz.cs | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/server/AyaNova/biz/WorkOrderBiz.cs b/server/AyaNova/biz/WorkOrderBiz.cs index 94d1ad0c..68b6d499 100644 --- a/server/AyaNova/biz/WorkOrderBiz.cs +++ b/server/AyaNova/biz/WorkOrderBiz.cs @@ -4402,24 +4402,30 @@ namespace AyaNova.Biz internal async Task GetCurrentWorkOrderContractFromRelatedAsync(AyaType ayaType, long id) { - //instantiated method to save adding the context if (mFetchedContractAlready == false) { - mContractInEffect = await GetCurrentWorkOrderContractFromRelatedAsync(ayaType, id, ct); - mFetchedContractAlready = true; + long WoId = await GetWorkOrderIdFromRelativeAsync(ayaType, id, ct); + var WoContractId = await ct.WorkOrder.AsNoTracking().Where(z => z.Id == WoId).Select(z => z.ContractId).FirstOrDefaultAsync(); + await GetCurrentContractFromContractIdAsync(WoContractId); } return mContractInEffect; } - internal static async Task GetCurrentWorkOrderContractFromRelatedAsync(AyaType ayaType, long id, AyContext ct) + + + internal async Task GetCurrentContractFromContractIdAsync(long? id) { - //static method - long WoId = await GetWorkOrderIdFromRelativeAsync(ayaType, id, ct); - var WoContractId = await ct.WorkOrder.AsNoTracking().Where(z => z.Id == WoId).Select(z => z.ContractId).FirstOrDefaultAsync(); - if (WoContractId == null) + if (id == null) return null; + if (mFetchedContractAlready == false) { - return null; + mContractInEffect = await ct.Contract.AsNoTracking() + .Include(c => c.ServiceRateItems) + .Include(c => c.TravelRateItems) + .Include(c => c.ContractPartOverrideItems) + .Include(c => c.ContractTravelRateOverrideItems) + .Include(c => c.ContractServiceRateOverrideItems) + .FirstOrDefaultAsync(z => z.Id == id); } - return await ct.Contract.AsNoTracking().FirstOrDefaultAsync(z => z.Id == WoContractId); + return mContractInEffect; }