public async Task Handle(string projectId, string pageId, CancellationToken cancellationToken = default(CancellationToken))
        {
            var page = await _pageQueries.GetPage(projectId, pageId, cancellationToken);

            var url = await _pageUrlResolver.ResolvePageUrl(page);

            var message = new PushMessageModel()
            {
                MessageType = "contentdelete",
                Body        = "Content deleted",
                Data        = url
            };

            if (page.Slug == "home")
            {
                message.Data = "/";
            }

            var queueItem = new PushQueueItem(
                message,
                BuiltInRecipientProviderNames.AllButCurrentUserPushNotificationRecipientProvider);

            queueItem.TenantId = page.ProjectId;
            queueItem.RecipientProviderCustom1 = _userIdResolver.GetCurrentUserId();

            _pushNotificationsQueue.Enqueue(queueItem);
        }
        public async Task <IPage> GetPage(string pageId, CancellationToken cancellationToken = default(CancellationToken))
        {
            await EnsureProjectSettings().ConfigureAwait(false);

            return(await _pageQueries.GetPage(
                       _settings.Id,
                       pageId,
                       cancellationToken)
                   .ConfigureAwait(false));
        }
Esempio n. 3
0
        public async Task <IPage> GetPage(
            string projectId,
            string pageId,
            string userName,
            string password)
        {
            var permission = await security.ValidatePermissions(
                projectId,
                userName,
                password,
                CancellationToken
                ).ConfigureAwait(false);

            if (!permission.CanEditPosts)
            {
                return(null);
            }

            return(await pageQueries.GetPage(
                       projectId,
                       pageId,
                       CancellationToken)
                   .ConfigureAwait(false));
        }