PluginInstalledLogger.cs 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. using System;
  2. using System.Globalization;
  3. using System.Threading.Tasks;
  4. using Jellyfin.Data.Entities;
  5. using MediaBrowser.Controller.Events;
  6. using MediaBrowser.Controller.Events.Updates;
  7. using MediaBrowser.Model.Activity;
  8. using MediaBrowser.Model.Globalization;
  9. using MediaBrowser.Model.Notifications;
  10. namespace Jellyfin.Server.Implementations.Events.Consumers.Updates
  11. {
  12. /// <summary>
  13. /// Creates an entry in the activity log when a plugin is installed.
  14. /// </summary>
  15. public class PluginInstalledLogger : IEventConsumer<PluginInstalledEventArgs>
  16. {
  17. private readonly ILocalizationManager _localizationManager;
  18. private readonly IActivityManager _activityManager;
  19. /// <summary>
  20. /// Initializes a new instance of the <see cref="PluginInstalledLogger"/> class.
  21. /// </summary>
  22. /// <param name="localizationManager">The localization manager.</param>
  23. /// <param name="activityManager">The activity manager.</param>
  24. public PluginInstalledLogger(ILocalizationManager localizationManager, IActivityManager activityManager)
  25. {
  26. _localizationManager = localizationManager;
  27. _activityManager = activityManager;
  28. }
  29. /// <inheritdoc />
  30. public async Task OnEvent(PluginInstalledEventArgs eventArgs)
  31. {
  32. await _activityManager.CreateAsync(new ActivityLog(
  33. string.Format(
  34. CultureInfo.InvariantCulture,
  35. _localizationManager.GetLocalizedString("PluginInstalledWithName"),
  36. eventArgs.Argument.Name),
  37. NotificationType.PluginInstalled.ToString(),
  38. Guid.Empty)
  39. {
  40. ShortOverview = string.Format(
  41. CultureInfo.InvariantCulture,
  42. _localizationManager.GetLocalizedString("VersionNumber"),
  43. eventArgs.Argument.Version)
  44. }).ConfigureAwait(false);
  45. }
  46. }
  47. }