diff --git a/server/AyaNova/Controllers/SearchController.cs b/server/AyaNova/Controllers/SearchController.cs index 77a7a4a3..8f0d437d 100644 --- a/server/AyaNova/Controllers/SearchController.cs +++ b/server/AyaNova/Controllers/SearchController.cs @@ -141,7 +141,7 @@ namespace AyaNova.Api.Controllers case AyaType.WorkOrderItemTravel: case AyaType.WorkOrderItemOutsideService: case AyaType.WorkOrderItemUnit: - AyaTypeId TypeId = await WorkOrderBiz.GetAncestor(ayaType, id, ct); + AyaTypeId TypeId = new AyaTypeId(AyaType.WorkOrder, await WorkOrderBiz.GetWorkOrderIdFromDescendant(ayaType, id, ct)); return Ok(ApiOkResponse.Response(new { AyaType = TypeId.ATypeAsInt, Id = TypeId.ObjectId })); default: return BadRequest(new ApiErrorResponse(ApiErrorCode.VALIDATION_INVALID_VALUE, null, "Only types with ancestors are valid")); diff --git a/server/AyaNova/biz/WorkOrderBiz.cs b/server/AyaNova/biz/WorkOrderBiz.cs index a9fc2955..d1850036 100644 --- a/server/AyaNova/biz/WorkOrderBiz.cs +++ b/server/AyaNova/biz/WorkOrderBiz.cs @@ -202,7 +202,7 @@ namespace AyaNova.Biz { try { - WorkOrder dbObject = await ct.WorkOrder.SingleOrDefaultAsync(z => z.Id == id); + WorkOrder dbObject = await WorkOrderGetAsync(id,false); if (dbObject == null) { AddError(ApiErrorCode.NOT_FOUND); @@ -232,6 +232,7 @@ namespace AyaNova.Biz } catch { + //NOTE: no need to rollback the transaction, it will auto-rollback if not committed and it is disposed when it goes out of scope either way //Just re-throw for now, let exception handler deal, but in future may want to deal with this more here throw; @@ -245,9 +246,9 @@ namespace AyaNova.Biz //////////////////////////////////////////////////////////////////////////////////////////////// - //GET ANCESTOR TYPE AND ID + //GET WORKORDER ID FROM DESCENDANT TYPE AND ID // - internal static async Task GetAncestor(AyaType ayaType, long id, AyContext ct) + internal static async Task GetWorkOrderIdFromDescendant(AyaType ayaType, long id, AyContext ct) { long woitemid = 0; switch (ayaType) @@ -288,7 +289,10 @@ namespace AyaNova.Biz default: throw new System.NotSupportedException($"WorkOrderBiz::GetAncestor -> AyaType {ayaType.ToString()} is not supported"); } - return new AyaTypeId(AyaType.WorkOrder, await ct.WorkOrderItem.Where(z => z.Id == woitemid).Select(z => z.WorkOrderId).SingleOrDefaultAsync()); + return await ct.WorkOrderItem.AsNoTracking() + .Where(z => z.Id == woitemid) + .Select(z => z.WorkOrderId) + .SingleOrDefaultAsync(); }