Как вызвать методы издателя в ASPBoilerplate? - PullRequest
1 голос
/ 03 октября 2019

Я изучаю фреймворк ASPBoilerplate, и что меня больше интересует, так это возможность уведомлений в реальном времени. Тем не менее, у меня появляется эта ошибка.

Вот мой класс издателя уведомлений:

public class Publisher : Hub, ITransientDependency 
{
    private readonly INotificationPublisher _notificationPublisher;

    public Publisher(INotificationPublisher notificationPublisher)
    {
        _notificationPublisher = notificationPublisher;       
    }

    //Send a general notification to all subscribed users in current tenant (tenant in the session)
    public async Task Publish_Announcement(string announcementMessage)
    {
        //Example "LowDiskWarningMessage" content for English -> "Attention! Only {remainingDiskInMb} MBs left on the disk!"
        var data = new MessageNotificationData(announcementMessage);

        await _notificationPublisher.PublishAsync("abp.notifications.received", data, severity: NotificationSeverity.Info);
    }

}

И я проверяю, будет ли он уведомлять всех онлайн-пользователей о каждом новом пользователе.

    public override async Task<UserDto> Create(CreateUserDto input)
    {
        CheckCreatePermission();

        var user = ObjectMapper.Map<User>(input);

        user.TenantId = AbpSession.TenantId;
        user.IsEmailConfirmed = true;

        await _userManager.InitializeOptionsAsync(AbpSession.TenantId);

        CheckErrors(await _userManager.CreateAsync(user, input.Password));

        if (input.RoleNames != null)
        {
            CheckErrors(await _userManager.SetRoles(user, input.RoleNames));
        }

        CurrentUnitOfWork.SaveChanges();


       //I cannot call the publisher class since it has dependencies in its contructor.
        new Publisher().Publish_Announcement("Hi");

        return MapToEntityDto(user);
    }

Или я просто ошибаюсь? Пожалуйста помоги. Спасибо!

...