Why is this a separate public method if you're detecting whether it needs to be called in ShareItemAsync anyway?