2020-06-28 21:44:35 -05:00
|
|
|
using System;
|
2020-06-16 23:29:25 +09:00
|
|
|
using BTCPayServer.Models.NotificationViewModels;
|
|
|
|
|
|
|
|
namespace BTCPayServer.Services.Notifications
|
|
|
|
{
|
|
|
|
public interface INotificationHandler
|
|
|
|
{
|
|
|
|
string NotificationType { get; }
|
|
|
|
Type NotificationBlobType { get; }
|
|
|
|
void FillViewModel(object notification, NotificationViewModel vm);
|
|
|
|
}
|
|
|
|
public abstract class NotificationHandler<TNotification> : INotificationHandler
|
|
|
|
{
|
|
|
|
public abstract string NotificationType { get; }
|
|
|
|
Type INotificationHandler.NotificationBlobType => typeof(TNotification);
|
|
|
|
void INotificationHandler.FillViewModel(object notification, NotificationViewModel vm)
|
|
|
|
{
|
|
|
|
FillViewModel((TNotification)notification, vm);
|
|
|
|
}
|
|
|
|
protected abstract void FillViewModel(TNotification notification, NotificationViewModel vm);
|
|
|
|
}
|
|
|
|
}
|