Я занимаюсь разработкой с использованием 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), как в настоящее время реализовано в рамках.
Заранее спасибо