This commit is contained in:
2020-05-09 18:38:48 +00:00
parent bfab9fcb9f
commit e7b919e803
2 changed files with 59 additions and 5 deletions

View File

@@ -391,6 +391,27 @@ namespace AyaNova.Api.Controllers
return Ok(ApiOkResponse.Response(new { ConcurrencyToken = o.ConcurrencyToken }, true)); return Ok(ApiOkResponse.Response(new { ConcurrencyToken = o.ConcurrencyToken }, true));
} }
/// <summary>
/// Delete WorkOrderItemLabor
/// </summary>
/// <param name="id"></param>
/// <returns>NoContent</returns>
[HttpDelete("{id}")]
public async Task<IActionResult> DeleteWorkOrderItemLabor([FromRoute] long id)
{
if (!serverState.IsOpen)
return StatusCode(503, new ApiErrorResponse(serverState.ApiErrorCode, null, serverState.Reason));
if (!ModelState.IsValid)
return BadRequest(new ApiErrorResponse(ModelState));
WorkOrderBiz biz = WorkOrderBiz.GetBiz(ct, HttpContext);
if (!Authorized.HasDeleteRole(HttpContext.Items, AyaType.WorkOrderItemLabor))
return StatusCode(403, new ApiNotAuthorizedResponse());
if (!await biz.LaborDeleteAsync(id))
return BadRequest(new ApiErrorResponse(biz.Errors));
return NoContent();
}
#endregion WorkOrderItemLabor #endregion WorkOrderItemLabor

View File

@@ -527,6 +527,25 @@ namespace AyaNova.Biz
return dbObject; return dbObject;
} }
////////////////////////////////////////////////////////////////////////////////////////////////
//DELETE
//
internal async Task<bool> LaborDeleteAsync(long id)
{
WorkOrderItemLabor dbObject = await ct.WorkOrderItemLabor.SingleOrDefaultAsync(m => m.Id == id);
LaborValidateCanDelete(dbObject);
if (HasErrors)
return false;
ct.WorkOrderItemLabor.Remove(dbObject);
await ct.SaveChangesAsync();
//Log event
await EventLogProcessor.DeleteObjectLogAsync(UserId, BizType, dbObject.Id, "woitem:" + dbObject.WorkOrderItemId.ToString(), ct);
await Search.ProcessDeletedObjectKeywordsAsync(dbObject.Id, BizType);
await TagUtil.ProcessDeleteTagsInRepositoryAsync(ct, dbObject.Tags);
return true;
}
//////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////
//VALIDATION //VALIDATION
// //
@@ -556,13 +575,27 @@ namespace AyaNova.Biz
} }
} }
// //Can delete? //Can delete?
// private void LaborValidateCanDelete(WorkOrderItemLabor inObj) private void LaborValidateCanDelete(WorkOrderItemLabor obj)
// { {
// //whatever needs to be check to delete this object 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.WorkOrderItemLabor))
{
AddError(ApiErrorCode.NOT_AUTHORIZED);
return;
}
}
//////////////////////////////////////////////
//INDEXING
//
private async Task LaborSearchIndexAsync(WorkOrderItemLabor obj, bool isNew) private async Task LaborSearchIndexAsync(WorkOrderItemLabor obj, bool isNew)
{ {
//SEARCH INDEXING //SEARCH INDEXING