получение идентификатора уведомления, вставленного с использованием метода PublishAsync, не реализовано - PullRequest
0 голосов
/ 24 января 2019

Я использую ASP.NET Boilerplate с Code-First Entity Framework и MVC 5.

и для отправки уведомления я использую следующий код

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

мы знаем, что отправка уведомления означает добавление его к AbpTenantNotifications и AbpUserNotifications, но после его отправки, какой способ получить вставленный идентификатор уведомления в AbpTenantNotifications, потому что метод PublishAsync не возвращает никакого значения

Я имею в виду, что является уникальным ключом в таблице AbpTenantNotifications, который обеспечивает выбор конкретного уведомления, которое вставляется после вызова метода PublishAsync

1 Ответ

0 голосов
/ 24 января 2019

NotificationInfo сохраняются в таблице только в течение короткого времени.

Когда вы звоните PublishAsync, NotifcationInfo создается немедленно (см. здесь ).

Впоследствии он потребляется NotificationDistributor.DistributeAsync и удаляется сразу после преобразования NotificationInfo в TenantNotification & UserNotification (см. здесь )

Если вы хотите захватить TenantNotification при его создании, вы можете попробовать обработчик событий объекта (см. здесь )

...