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
            });
        }
    }