From ed8fe588e536d44d67071abae2666ea3215cc02e Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Sat, 9 May 2020 19:25:45 +0000 Subject: [PATCH] --- server/AyaNova/biz/WorkOrderBiz.cs | 46 ++++++++++++++++++++++++------ 1 file changed, 38 insertions(+), 8 deletions(-) diff --git a/server/AyaNova/biz/WorkOrderBiz.cs b/server/AyaNova/biz/WorkOrderBiz.cs index 42955d08..c8ca219c 100644 --- a/server/AyaNova/biz/WorkOrderBiz.cs +++ b/server/AyaNova/biz/WorkOrderBiz.cs @@ -261,7 +261,7 @@ namespace AyaNova.Biz } - //Can delete? + private void ValidateCanDelete(WorkOrder dbObject) { //whatever needs to be check to delete this object @@ -373,6 +373,25 @@ namespace AyaNova.Biz return dbObject; } + //////////////////////////////////////////////////////////////////////////////////////////////// + //DELETE + // + internal async Task ItemDeleteAsync(long id) + { + WorkOrderItem dbObject = await ct.WorkOrderItem.SingleOrDefaultAsync(m => m.Id == id); + ItemValidateCanDelete(dbObject); + if (HasErrors) + return false; + ct.WorkOrderItem.Remove(dbObject); + await ct.SaveChangesAsync(); + + //Log event + await EventLogProcessor.DeleteObjectLogAsync(UserId, BizType, dbObject.Id, "wo:" + dbObject.WorkOrderId.ToString(), ct); + await Search.ProcessDeletedObjectKeywordsAsync(dbObject.Id, BizType); + await TagUtil.ProcessDeleteTagsInRepositoryAsync(ct, dbObject.Tags); + return true; + } + //////////////////////////////////////////////////////////////////////////////////////////////// //VALIDATION @@ -404,11 +423,22 @@ namespace AyaNova.Biz } } - // //Can delete? - // private void ValidateCanDeleteItem(WorkOrderItem inObj) - // { - // //whatever needs to be check to delete this object - // } + + private void ItemValidateCanDelete(WorkOrderItem obj) + { + if (obj == null) + { + AddError(ApiErrorCode.NOT_FOUND, "id"); + return; + } + + //re-check rights here necessary due to traversal delete from Principle object + if (!Authorized.HasDeleteRole(CurrentUserRoles, AyaType.WorkOrderItem)) + { + AddError(ApiErrorCode.NOT_AUTHORIZED); + return; + } + } private async Task ItemSearchIndexAsync(WorkOrderItem obj, bool isNew) @@ -575,7 +605,7 @@ namespace AyaNova.Biz } } - //Can delete? + private void LaborValidateCanDelete(WorkOrderItemLabor obj) { if (obj == null) @@ -760,7 +790,7 @@ namespace AyaNova.Biz } } - //Can delete? + private void PartValidateCanDelete(WorkOrderItemPart obj) { if (obj == null)