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