public Task <ActionResult <WatchView> > AddWatch([FromRoute] long contentId)
    {
        return(MatchExceptions(async() =>
        {
            RateLimit(RateInteract);
            var uid = GetUserIdStrict();

            //Now construct the watch
            var watch = new WatchView()
            {
                contentId = contentId
            };

            await shortcuts.ClearNotificationsAsync(watch, uid);

            return await CachedWriter.WriteAsync(watch, uid); //message used for activity and such
        }));
    }
    public async Task ClearNotifications_Simple(long uid, long cid, bool allowed)
    {
        var watch = new WatchView()
        {
            contentId = cid
        };

        //Clearing the notifications is a simple lookup, it does NOT throw exceptions
        //when the content wasn't found.
        await service.ClearNotificationsAsync(watch, uid);

        if (allowed)
        {
            Assert.True(watch.lastActivityId > 0);
            Assert.True(watch.lastCommentId > 0);
        }
        else
        {
            Assert.Equal(0, watch.lastActivityId);
            Assert.Equal(0, watch.lastCommentId);
        }
    }