Bläddra i källkod

Added a welcome notification

Luke Pulverenti 12 år sedan
förälder
incheckning
e924efaa6f

+ 2 - 0
MediaBrowser.Controller/Library/IUserManager.cs

@@ -28,6 +28,8 @@ namespace MediaBrowser.Controller.Library
         /// </summary>
         event EventHandler<GenericEventArgs<User>> UserDeleted;
 
+        event EventHandler<GenericEventArgs<User>> UserCreated;
+        
         /// <summary>
         /// Gets a User by Id
         /// </summary>

+ 28 - 0
MediaBrowser.Server.Implementations/EntryPoints/Notifications/Notifier.cs

@@ -2,6 +2,7 @@
 using MediaBrowser.Common.Plugins;
 using MediaBrowser.Common.ScheduledTasks;
 using MediaBrowser.Common.Updates;
+using MediaBrowser.Controller.Entities;
 using MediaBrowser.Controller.Library;
 using MediaBrowser.Controller.Notifications;
 using MediaBrowser.Controller.Plugins;
@@ -42,6 +43,28 @@ namespace MediaBrowser.Server.Implementations.EntryPoints.Notifications
             _installationManager.PluginUninstalled += _installationManager_PluginUninstalled;
 
             _taskManager.TaskCompleted += _taskManager_TaskCompleted;
+
+            _userManager.UserCreated += _userManager_UserCreated;
+        }
+
+        async void _userManager_UserCreated(object sender, GenericEventArgs<User> e)
+        {
+            var notification = new Notification
+            {
+                UserId = e.Argument.Id,
+                Category = "UserCreated",
+                Name = "Welcome to Media Browser!",
+                Description = "Check back here for more notifications."
+            };
+
+            try
+            {
+                await _notificationsRepo.AddNotification(notification, CancellationToken.None).ConfigureAwait(false);
+            }
+            catch (Exception ex)
+            {
+                _logger.ErrorException("Error adding notification", ex);
+            }
         }
 
         async void _taskManager_TaskCompleted(object sender, GenericEventArgs<TaskResult> e)
@@ -168,6 +191,11 @@ namespace MediaBrowser.Server.Implementations.EntryPoints.Notifications
         {
             _installationManager.PackageInstallationCompleted -= _installationManager_PackageInstallationCompleted;
             _installationManager.PackageInstallationFailed -= _installationManager_PackageInstallationFailed;
+            _installationManager.PluginUninstalled -= _installationManager_PluginUninstalled;
+
+            _taskManager.TaskCompleted -= _taskManager_TaskCompleted;
+
+            _userManager.UserCreated -= _userManager_UserCreated;
         }
     }
 }

+ 6 - 0
MediaBrowser.Server.Implementations/Library/UserManager.cs

@@ -303,6 +303,8 @@ namespace MediaBrowser.Server.Implementations.Library
             OnUserUpdated(user);
         }
 
+        public event EventHandler<GenericEventArgs<User>> UserCreated;
+        
         /// <summary>
         /// Creates the user.
         /// </summary>
@@ -330,6 +332,8 @@ namespace MediaBrowser.Server.Implementations.Library
 
             await UserRepository.SaveUser(user, CancellationToken.None).ConfigureAwait(false);
 
+            EventHelper.QueueEventIfNotNull(UserCreated, this, new GenericEventArgs<User> { Argument = user }, _logger);
+            
             return user;
         }
 
@@ -439,5 +443,7 @@ namespace MediaBrowser.Server.Implementations.Library
                 DateModified = DateTime.UtcNow
             };
         }
+
+
     }
 }