btcpayserver/BTCPayServer/Services/Notifications/INotificationHandler.cs
2020-06-16 23:29:25 +09:00

25 lines
924 B
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
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);
}
}