PluginInstallationFailedLogger.cs 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. using System;
  2. using System.Globalization;
  3. using System.Threading.Tasks;
  4. using Jellyfin.Database.Implementations.Entities;
  5. using MediaBrowser.Common.Updates;
  6. using MediaBrowser.Controller.Events;
  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 package installation fails.
  14. /// </summary>
  15. public class PluginInstallationFailedLogger : IEventConsumer<InstallationFailedEventArgs>
  16. {
  17. private readonly ILocalizationManager _localizationManager;
  18. private readonly IActivityManager _activityManager;
  19. /// <summary>
  20. /// Initializes a new instance of the <see cref="PluginInstallationFailedLogger"/> class.
  21. /// </summary>
  22. /// <param name="localizationManager">The localization manager.</param>
  23. /// <param name="activityManager">The activity manager.</param>
  24. public PluginInstallationFailedLogger(ILocalizationManager localizationManager, IActivityManager activityManager)
  25. {
  26. _localizationManager = localizationManager;
  27. _activityManager = activityManager;
  28. }
  29. /// <inheritdoc />
  30. public async Task OnEvent(InstallationFailedEventArgs eventArgs)
  31. {
  32. await _activityManager.CreateAsync(new ActivityLog(
  33. string.Format(
  34. CultureInfo.InvariantCulture,
  35. _localizationManager.GetLocalizedString("NameInstallFailed"),
  36. eventArgs.InstallationInfo.Name),
  37. NotificationType.InstallationFailed.ToString(),
  38. Guid.Empty)
  39. {
  40. ShortOverview = string.Format(
  41. CultureInfo.InvariantCulture,
  42. _localizationManager.GetLocalizedString("VersionNumber"),
  43. eventArgs.InstallationInfo.Version),
  44. Overview = eventArgs.Exception.Message
  45. }).ConfigureAwait(false);
  46. }
  47. }
  48. }