public async Task <ProductDeleteResponse> Delete(ProductDeleteRequest request) { var product = await _productDataService.Query.FirstAsync(x => x.Id == request.Id); if (!HasAccessToManage(product, request.RequestOwner)) { return new ProductDeleteResponse() { Access = ResponseAccess.Deny } } ; await BaseBeforeDeleteAsync(product, request.RequestOwner); await _productFacade.DeleteAsync(product); await BaseAfterDeleteAsync(product, request.RequestOwner); return(new ProductDeleteResponse() { Access = ResponseAccess.Granted }); } }