diff --git a/server/AyaNova/biz/CustomerBiz.cs b/server/AyaNova/biz/CustomerBiz.cs index 923831a0..04c9620f 100644 --- a/server/AyaNova/biz/CustomerBiz.cs +++ b/server/AyaNova/biz/CustomerBiz.cs @@ -424,7 +424,10 @@ namespace AyaNova.Biz { SaveIt = false; ClearErrors(); - var o = await GetAsync(id, false); + Customer o = null; + //save a fetch if it's a delete + if (job.SubType != JobSubType.Delete) + o = await GetAsync(id, false); switch (job.SubType) { case JobSubType.TagAddAny: @@ -435,6 +438,12 @@ namespace AyaNova.Biz case JobSubType.TagReplace: SaveIt = TagBiz.ProcessBulkTagOperation(o.Tags, (string)jobData["tag"], jobData.ContainsKey("toTag") ? (string)jobData["toTag"] : null, job.SubType); break; + case JobSubType.Delete: + if (!await DeleteAsync(id)) + { + await JobsBiz.LogJobAsync(job.GId, $"Error processing item {id}: {GetErrorsAsString()}"); + } + break; default: throw new System.ArgumentOutOfRangeException($"ProcessBulkJob -> Invalid job Subtype{job.SubType}"); } diff --git a/server/AyaNova/biz/HeadOfficeBiz.cs b/server/AyaNova/biz/HeadOfficeBiz.cs index 265c6a82..f3fc345b 100644 --- a/server/AyaNova/biz/HeadOfficeBiz.cs +++ b/server/AyaNova/biz/HeadOfficeBiz.cs @@ -384,7 +384,10 @@ namespace AyaNova.Biz { SaveIt = false; ClearErrors(); - var o = await GetAsync(id, false); + HeadOffice o = null; + //save a fetch if it's a delete + if (job.SubType != JobSubType.Delete) + o = await GetAsync(id, false); switch (job.SubType) { case JobSubType.TagAddAny: @@ -395,6 +398,12 @@ namespace AyaNova.Biz case JobSubType.TagReplace: SaveIt = TagBiz.ProcessBulkTagOperation(o.Tags, (string)jobData["tag"], jobData.ContainsKey("toTag") ? (string)jobData["toTag"] : null, job.SubType); break; + case JobSubType.Delete: + if (!await DeleteAsync(id)) + { + await JobsBiz.LogJobAsync(job.GId, $"Error processing item {id}: {GetErrorsAsString()}"); + } + break; default: throw new System.ArgumentOutOfRangeException($"ProcessBulkJob -> Invalid job Subtype{job.SubType}"); } diff --git a/server/AyaNova/biz/UserBiz.cs b/server/AyaNova/biz/UserBiz.cs index 14045d08..e5f12126 100644 --- a/server/AyaNova/biz/UserBiz.cs +++ b/server/AyaNova/biz/UserBiz.cs @@ -850,8 +850,10 @@ namespace AyaNova.Biz ClearErrors(); //a little different than normal here because the built in getasync doesn't return //a full User object normally - // var o = await GetAsync(id, false); - var o = await ct.User.SingleOrDefaultAsync(z => z.Id == id); + User o = null; + //save a fetch if it's a delete + if (job.SubType != JobSubType.Delete) + o = await ct.User.SingleOrDefaultAsync(z => z.Id == id); switch (job.SubType) { case JobSubType.TagAddAny: @@ -862,6 +864,12 @@ namespace AyaNova.Biz case JobSubType.TagReplace: SaveIt = TagBiz.ProcessBulkTagOperation(o.Tags, (string)jobData["tag"], jobData.ContainsKey("toTag") ? (string)jobData["toTag"] : null, job.SubType); break; + case JobSubType.Delete: + if (!await DeleteAsync(id)) + { + await JobsBiz.LogJobAsync(job.GId, $"Error processing item {id}: {GetErrorsAsString()}"); + } + break; default: throw new System.ArgumentOutOfRangeException($"ProcessBulkJob -> Invalid job Subtype{job.SubType}"); } diff --git a/server/AyaNova/biz/VendorBiz.cs b/server/AyaNova/biz/VendorBiz.cs index d96ed3c3..124c681c 100644 --- a/server/AyaNova/biz/VendorBiz.cs +++ b/server/AyaNova/biz/VendorBiz.cs @@ -152,7 +152,8 @@ namespace AyaNova.Biz try { Vendor dbObject = await ct.Vendor.SingleOrDefaultAsync(z => z.Id == id); - if (dbObject == null){ + if (dbObject == null) + { AddError(ApiErrorCode.NOT_FOUND); return false; } @@ -358,7 +359,10 @@ namespace AyaNova.Biz { SaveIt = false; ClearErrors(); - var o = await GetAsync(id, false); + Vendor o = null; + //save a fetch if it's a delete + if (job.SubType != JobSubType.Delete) + o = await GetAsync(id, false); switch (job.SubType) { case JobSubType.TagAddAny: @@ -369,6 +373,12 @@ namespace AyaNova.Biz case JobSubType.TagReplace: SaveIt = TagBiz.ProcessBulkTagOperation(o.Tags, (string)jobData["tag"], jobData.ContainsKey("toTag") ? (string)jobData["toTag"] : null, job.SubType); break; + case JobSubType.Delete: + if (!await DeleteAsync(id)) + { + await JobsBiz.LogJobAsync(job.GId, $"Error processing item {id}: {GetErrorsAsString()}"); + } + break; default: throw new System.ArgumentOutOfRangeException($"ProcessBulkJob -> Invalid job Subtype{job.SubType}"); } diff --git a/server/AyaNova/biz/WorkOrderBiz.cs b/server/AyaNova/biz/WorkOrderBiz.cs index 89fae19c..984e1854 100644 --- a/server/AyaNova/biz/WorkOrderBiz.cs +++ b/server/AyaNova/biz/WorkOrderBiz.cs @@ -199,7 +199,8 @@ namespace AyaNova.Biz try { WorkOrder dbObject = await ct.WorkOrder.SingleOrDefaultAsync(z => z.Id == id); - if (dbObject == null){ + if (dbObject == null) + { AddError(ApiErrorCode.NOT_FOUND); return false; } @@ -227,7 +228,7 @@ namespace AyaNova.Biz if (dbObject.Wiki == "INTEGRATION_DELETE_TEST_FAIL_BEFORE_COMMIT") { - // await transaction.RollbackAsync(); + // await transaction.RollbackAsync(); return false;//thus not committing transaction } #endif @@ -2461,6 +2462,37 @@ namespace AyaNova.Biz throw new System.ArgumentOutOfRangeException($"WorkOrder::PutWorkOrderGraphItem -> Invalid ayaType{ayaType}"); } } + + public async Task DeleteWorkOrderGraphItem(AyaType ayaType, long id) + { + switch (ayaType) + { + case AyaType.WorkOrder: + return await WorkOrderDeleteAsync(id); + case AyaType.WorkOrderItem: + return await ItemDeleteAsync(id); + case AyaType.WorkOrderItemExpense: + return await ExpenseDeleteAsync(id); + case AyaType.WorkOrderItemLabor: + return await LaborDeleteAsync(id); + case AyaType.WorkOrderItemLoan: + return await LoanDeleteAsync(id); + case AyaType.WorkOrderItemPart: + return await PartDeleteAsync(id); + case AyaType.WorkOrderItemPartRequest: + return await PartRequestDeleteAsync(id); + case AyaType.WorkOrderItemScheduledUser: + return await ScheduledUserDeleteAsync(id); + case AyaType.WorkOrderItemTask: + return await TaskDeleteAsync(id); + case AyaType.WorkOrderItemTravel: + return await TravelDeleteAsync(id); + case AyaType.WorkOrderItemUnit: + return await UnitDeleteAsync(id); + default: + throw new System.ArgumentOutOfRangeException($"WorkOrder::GetWorkOrderGraphItem -> Invalid ayaType{ayaType}"); + } + } #endregion utility @@ -2500,7 +2532,10 @@ namespace AyaNova.Biz { SaveIt = false; ClearErrors(); - ICoreBizObjectModel o = await GetWorkOrderGraphItem(job.ObjectType, id); + ICoreBizObjectModel o = null; + //save a fetch if it's a delete + if (job.SubType != JobSubType.Delete) + o = await GetWorkOrderGraphItem(job.ObjectType, id); switch (job.SubType) { case JobSubType.TagAddAny: @@ -2511,6 +2546,12 @@ namespace AyaNova.Biz case JobSubType.TagReplace: SaveIt = TagBiz.ProcessBulkTagOperation(o.Tags, (string)jobData["tag"], jobData.ContainsKey("toTag") ? (string)jobData["toTag"] : null, job.SubType); break; + case JobSubType.Delete: + if (!await DeleteWorkOrderGraphItem(job.ObjectType, id)) + { + await JobsBiz.LogJobAsync(job.GId, $"Error processing item {id}: {GetErrorsAsString()}"); + } + break; default: throw new System.ArgumentOutOfRangeException($"ProcessBulkJob -> Invalid job Subtype{job.SubType}"); }