using System.Collections.Generic;
using System.Threading.Tasks;
namespace Abp.Notifications
{
///
/// Used to manage notification definitions.
///
public interface INotificationDefinitionManager
{
///
/// Adds the specified notification definition.
///
void Add(NotificationDefinition notificationDefinition);
///
/// Gets a notification definition by name.
/// Throws exception if there is no notification definition with given name.
///
NotificationDefinition Get(string name);
///
/// Gets a notification definition by name.
/// Returns null if there is no notification definition with given name.
///
NotificationDefinition GetOrNull(string name);
///
/// Gets all notification definitions.
///
IReadOnlyList GetAll();
///
/// Checks if given notification () is available for given user.
///
Task IsAvailableAsync(string name, UserIdentifier user);
///
/// Gets all available notification definitions for given user.
///
/// User.
Task> GetAllAvailableAsync(UserIdentifier user);
///
/// Remove notification with given name
///
///
void Remove(string name);
}
}