| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 | using Jellyfin.Data.Events;using Jellyfin.Data.Events.System;using Jellyfin.Data.Events.Users;using Jellyfin.Server.Implementations.Events.Consumers.Library;using Jellyfin.Server.Implementations.Events.Consumers.Security;using Jellyfin.Server.Implementations.Events.Consumers.Session;using Jellyfin.Server.Implementations.Events.Consumers.System;using Jellyfin.Server.Implementations.Events.Consumers.Updates;using Jellyfin.Server.Implementations.Events.Consumers.Users;using MediaBrowser.Common.Updates;using MediaBrowser.Controller.Authentication;using MediaBrowser.Controller.Events;using MediaBrowser.Controller.Events.Session;using MediaBrowser.Controller.Events.Updates;using MediaBrowser.Controller.Library;using MediaBrowser.Controller.Session;using MediaBrowser.Controller.Subtitles;using MediaBrowser.Model.Tasks;using Microsoft.Extensions.DependencyInjection;namespace Jellyfin.Server.Implementations.Events{    /// <summary>    /// A class containing extensions to <see cref="IServiceCollection"/> for eventing.    /// </summary>    public static class EventingServiceCollectionExtensions    {        /// <summary>        /// Adds the event services to the service collection.        /// </summary>        /// <param name="collection">The service collection.</param>        public static void AddEventServices(this IServiceCollection collection)        {            // Library consumers            collection.AddScoped<IEventConsumer<SubtitleDownloadFailureEventArgs>, SubtitleDownloadFailureLogger>();            // Security consumers            collection.AddScoped<IEventConsumer<GenericEventArgs<AuthenticationRequest>>, AuthenticationFailedLogger>();            collection.AddScoped<IEventConsumer<GenericEventArgs<AuthenticationResult>>, AuthenticationSucceededLogger>();            // Session consumers            collection.AddScoped<IEventConsumer<PlaybackStartEventArgs>, PlaybackStartLogger>();            collection.AddScoped<IEventConsumer<PlaybackStopEventArgs>, PlaybackStopLogger>();            collection.AddScoped<IEventConsumer<SessionEndedEventArgs>, SessionEndedLogger>();            collection.AddScoped<IEventConsumer<SessionStartedEventArgs>, SessionStartedLogger>();            // System consumers            collection.AddScoped<IEventConsumer<PendingRestartEventArgs>, PendingRestartNotifier>();            collection.AddScoped<IEventConsumer<TaskCompletionEventArgs>, TaskCompletedLogger>();            collection.AddScoped<IEventConsumer<TaskCompletionEventArgs>, TaskCompletedNotifier>();            // Update consumers            collection.AddScoped<IEventConsumer<PluginInstallationCancelledEventArgs>, PluginInstallationCancelledNotifier>();            collection.AddScoped<IEventConsumer<InstallationFailedEventArgs>, PluginInstallationFailedLogger>();            collection.AddScoped<IEventConsumer<InstallationFailedEventArgs>, PluginInstallationFailedNotifier>();            collection.AddScoped<IEventConsumer<PluginInstalledEventArgs>, PluginInstalledLogger>();            collection.AddScoped<IEventConsumer<PluginInstalledEventArgs>, PluginInstalledNotifier>();            collection.AddScoped<IEventConsumer<PluginInstallingEventArgs>, PluginInstallingNotifier>();            collection.AddScoped<IEventConsumer<PluginUninstalledEventArgs>, PluginUninstalledLogger>();            collection.AddScoped<IEventConsumer<PluginUninstalledEventArgs>, PluginUninstalledNotifier>();            collection.AddScoped<IEventConsumer<PluginUpdatedEventArgs>, PluginUpdatedLogger>();            // User consumers            collection.AddScoped<IEventConsumer<UserCreatedEventArgs>, UserCreatedLogger>();            collection.AddScoped<IEventConsumer<UserDeletedEventArgs>, UserDeletedLogger>();            collection.AddScoped<IEventConsumer<UserDeletedEventArgs>, UserDeletedNotifier>();            collection.AddScoped<IEventConsumer<UserLockedOutEventArgs>, UserLockedOutLogger>();            collection.AddScoped<IEventConsumer<UserPasswordChangedEventArgs>, UserPasswordChangedLogger>();            collection.AddScoped<IEventConsumer<UserUpdatedEventArgs>, UserUpdatedNotifier>();        }    }}
 |