Магазин пользовательских уведомлений в AspNetBoilerplate - PullRequest
0 голосов
/ 18 июня 2019

Я занимаюсь разработкой с использованием AspNetBoilerplate Framework.

Мне нужно настроить уведомления, чтобы завершить следующую

  • отправку электронного письма, если пользовательский инст вошел в систему во времяУведомление.
  • Отображение списка уведомлений (читать / не читать, как в Facebook) для пользователя в интерфейсе.В настоящее время уведомления удаляются из таблицы apbNotifications после их показа пользователю.

Из того, что я читаю, мне нужно реализовать собственный INotificationStore, чтобы добиться этого.

Однако после создания хранилища и расширения хранилища INotificationStore я получаю следующее:

namespace ESMPortal.Notification
{
    [AbpAuthorize(PermissionNames.Pages_Roles)]
    public class NotificationAppService :  INotificationAppService
    {
        private readonly RoleManager _roleManager;
        private readonly UserManager _userManager;

        public NotificationAppService(IRepository<Role> repository, RoleManager roleManager, UserManager userManager)
        {
            _roleManager = roleManager;
            _userManager = userManager;
        }

        public Task DeleteAllUserNotificationsAsync(UserIdentifier user)
        {
            throw new NotImplementedException();
        }

        public Task DeleteNotificationAsync(NotificationInfo notification)
        {
            throw new NotImplementedException();
        }

        public Task DeleteSubscriptionAsync(UserIdentifier user, string notificationName, string entityTypeName, string entityId)
        {
            throw new NotImplementedException();
        }

        public Task DeleteUserNotificationAsync(int? tenantId, Guid userNotificationId)
        {
            throw new NotImplementedException();
        }

        public Task<ListResultDto<PermissionDto>> GetAllPermissions()
        {
            throw new NotImplementedException();
        }

        public Task<NotificationInfo> GetNotificationOrNullAsync(Guid notificationId)
        {
            throw new NotImplementedException();
        }

        public Task<GetRoleForEditOutput> GetRoleForEdit(EntityDto input)
        {
            throw new NotImplementedException();
        }

        public Task<ListResultDto<RoleListDto>> GetRolesAsync(GetRolesInput input)
        {
            throw new NotImplementedException();
        }

        public Task<List<NotificationSubscriptionInfo>> GetSubscriptionsAsync(string notificationName, string entityTypeName, string entityId)
        {
            throw new NotImplementedException();
        }

        public Task<List<NotificationSubscriptionInfo>> GetSubscriptionsAsync(int?[] tenantIds, string notificationName, string entityTypeName, string entityId)
        {
            throw new NotImplementedException();
        }

        public Task<List<NotificationSubscriptionInfo>> GetSubscriptionsAsync(UserIdentifier user)
        {
            throw new NotImplementedException();
        }

        public Task<int> GetUserNotificationCountAsync(UserIdentifier user, UserNotificationState? state = null)
        {
            throw new NotImplementedException();
        }

        public Task<List<UserNotificationInfoWithNotificationInfo>> GetUserNotificationsWithNotificationsAsync(UserIdentifier user, UserNotificationState? state = null, int skipCount = 0, int maxResultCount = int.MaxValue)
        {
            throw new NotImplementedException();
        }

        public Task<UserNotificationInfoWithNotificationInfo> GetUserNotificationWithNotificationOrNullAsync(int? tenantId, Guid userNotificationId)
        {
            throw new NotImplementedException();
        }

        public Task InsertNotificationAsync(NotificationInfo notification)
        {
            throw new NotImplementedException();
        }

        public Task InsertSubscriptionAsync(NotificationSubscriptionInfo subscription)
        {
            throw new NotImplementedException();
        }

        public Task InsertTenantNotificationAsync(TenantNotificationInfo tenantNotificationInfo)
        {
            throw new NotImplementedException();
        }

        public Task InsertUserNotificationAsync(UserNotificationInfo userNotification)
        {
            throw new NotImplementedException();
        }

        public Task<bool> IsSubscribedAsync(UserIdentifier user, string notificationName, string entityTypeName, string entityId)
        {
            throw new NotImplementedException();
        }

        public Task UpdateAllUserNotificationStatesAsync(UserIdentifier user, UserNotificationState state)
        {
            throw new NotImplementedException();
        }

        public Task UpdateUserNotificationStateAsync(int? tenantId, Guid userNotificationId, UserNotificationState state)
        {
            throw new NotImplementedException();
        }
    }
} 

Я надеялся, что мне не придется полностью переписывать хранилище уведомлений, просто перезаписать определенные его части для достижениячто мне нужно, однако из моего понимания это кажется невозможным.

Может кто-нибудь посоветует либо способ достижения того, что мне нужно, используя текущий магазин, либо предоставьте мне пример пользовательского магазина, использующего те же таблицы(abpNotification), как в настоящее время реализовано в рамках.

Заранее спасибо

...