From bd773e85b4edd1a27539df25a7c7e834e0df6149 Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Sun, 10 May 2020 22:18:41 +0000 Subject: [PATCH] --- server/AyaNova/biz/WorkOrderBiz.cs | 48 ++++++++++++++++-------------- 1 file changed, 25 insertions(+), 23 deletions(-) diff --git a/server/AyaNova/biz/WorkOrderBiz.cs b/server/AyaNova/biz/WorkOrderBiz.cs index e49f4b56..6fc5396b 100644 --- a/server/AyaNova/biz/WorkOrderBiz.cs +++ b/server/AyaNova/biz/WorkOrderBiz.cs @@ -185,23 +185,26 @@ namespace AyaNova.Biz // internal async Task DeleteAsync(long id) { - WorkOrder dbObject = await ct.WorkOrder.SingleOrDefaultAsync(m => m.Id == id); - ValidateCanDelete(dbObject); - if (HasErrors) - return false; - - //collect the child id's to delete - var ItemIds = await ct.WorkOrderItem.Where(m => m.WorkOrderId == id).Select(m => m.Id).ToListAsync(); using (var transaction = await ct.Database.BeginTransactionAsync()) { try { + WorkOrder dbObject = await ct.WorkOrder.SingleOrDefaultAsync(m => m.Id == id); + ValidateCanDelete(dbObject); + if (HasErrors) + return false; + + //collect the child id's to delete + var ItemIds = await ct.WorkOrderItem.Where(m => m.WorkOrderId == id).Select(m => m.Id).ToListAsync(); + + //Delete children - foreach (long l in ItemIds) + foreach (long ItemId in ItemIds) { - if (!await ItemDeleteAsync(id, transaction)) return false; + if (!await ItemDeleteAsync(ItemId, transaction)) + return false; } @@ -419,29 +422,28 @@ namespace AyaNova.Biz // internal async Task ItemDeleteAsync(long id, Microsoft.EntityFrameworkCore.Storage.IDbContextTransaction parentTransaction = null) { - WorkOrderItem dbObject = await ct.WorkOrderItem.SingleOrDefaultAsync(m => m.Id == id); - ItemValidateCanDelete(dbObject); - if (HasErrors) - return false; - - //collect the child id's to delete - var LaborIds = await ct.WorkOrderItemLabor.Where(m => m.WorkOrderItemId == id).Select(m => m.Id).ToListAsync(); - var PartIds = await ct.WorkOrderItemPart.Where(m => m.WorkOrderItemId == id).Select(m => m.Id).ToListAsync(); - - using (var transaction = parentTransaction ?? await ct.Database.BeginTransactionAsync()) { try { + WorkOrderItem dbObject = await ct.WorkOrderItem.SingleOrDefaultAsync(m => m.Id == id); + ItemValidateCanDelete(dbObject); + if (HasErrors) + return false; + + //collect the child id's to delete + var LaborIds = await ct.WorkOrderItemLabor.Where(m => m.WorkOrderItemId == id).Select(m => m.Id).ToListAsync(); + var PartIds = await ct.WorkOrderItemPart.Where(m => m.WorkOrderItemId == id).Select(m => m.Id).ToListAsync(); + //Delete children - foreach (long l in LaborIds) + foreach (long ItemId in LaborIds) { - if (!await LaborDeleteAsync(id)) + if (!await LaborDeleteAsync(ItemId)) return false; } - foreach (long l in PartIds) + foreach (long ItemId in PartIds) { - if (!await PartDeleteAsync(id)) + if (!await PartDeleteAsync(ItemId)) return false; }