12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- using MediaBrowser.Controller.Entities;
- using MediaBrowser.Controller.Notifications;
- using MediaBrowser.Model.Notifications;
- using System.Threading;
- using System.Threading.Tasks;
- using System;
- namespace MediaBrowser.Server.Implementations.Notifications
- {
- public class InternalNotificationService : INotificationService, IConfigurableNotificationService
- {
- private readonly INotificationsRepository _repo;
- public InternalNotificationService(INotificationsRepository repo)
- {
- _repo = repo;
- }
- public string Name
- {
- get { return "Dashboard Notifications"; }
- }
- public Task SendNotification(UserNotification request, CancellationToken cancellationToken)
- {
- return _repo.AddNotification(new Notification
- {
- Date = request.Date,
- Description = request.Description,
- Level = request.Level,
- Name = request.Name,
- Url = request.Url,
- UserId = request.User.Id.ToString("N")
- }, cancellationToken);
- }
- public bool IsEnabledForUser(User user)
- {
- return user.Policy.IsAdministrator;
- }
- public bool IsHidden
- {
- get { return true; }
- }
- public bool IsEnabled(string notificationType)
- {
- if (notificationType.IndexOf("playback", StringComparison.OrdinalIgnoreCase) != -1)
- {
- return false;
- }
- if (notificationType.IndexOf("newlibrarycontent", StringComparison.OrdinalIgnoreCase) != -1)
- {
- return false;
- }
- return true;
- }
- }
- }
|