未实现检索使用PublishAsync方法插入的通知的ID

时间:2019-01-24 11:44:55

标签: aspnetboilerplate

我正在使用带有代码优先实体框架和MVC 5的ASP.NET Boilerplate。

并且为了发送通知,我正在使用以下代码

public async Task SendNotification(Guid auditId, int auditNo, int? tenantId, long userId)
        {
            var notificationData = new LocalizableMessageNotificationData(
                new LocalizableString(
                    "NotificationName",
                    EODAConsts.LocalizationSourceName
                )
            );
            notificationData["auditNo"] = auditNo;
            notificationData["auditId"] = auditId;
            await _notificationPublisher.PublishAsync(NotificationName, notificationData, severity: NotificationSeverity.Error, userIds: new[] { new UserIdentifier(tenantId, userId) });
        }

我们知道发送通知意味着将其添加到AbpTenantNotificationsAbpUserNotifications中,但是在发送通知之后,由于{{1} }方法不返回任何值

我的意思是表AbpTenantNotifications中的唯一键是什么,它可以确保选择在调用PublishAsync方法后插入的特定通知

1 个答案:

答案 0 :(得分:1)

NotificationInfo仅在表中保留很短的时间。

调用PublishAsync时,会立即创建NotifcationInfo(请参见here)。

随后,它被NotificationDistributor.DistributeAsync占用,并在将NotificationInfo转换为TenantNotificationUserNotification(请参阅here)之后被删除

如果要在创建TenantNotification时捕获它,可以尝试使用实体事件处理程序(请参见here