mirror of
https://github.com/lidarr/Lidarr
synced 2025-01-03 13:34:54 +00:00
Fixed: Refresh tags after updating autotags
(cherry picked from commit 6a332b40ac94e6e7c23217074da8e18e0ca3a319) Closes #5093
This commit is contained in:
parent
2818f4e073
commit
b2a4c75cce
3 changed files with 29 additions and 1 deletions
|
@ -3,6 +3,7 @@
|
||||||
using Lidarr.Http.REST;
|
using Lidarr.Http.REST;
|
||||||
using Lidarr.Http.REST.Attributes;
|
using Lidarr.Http.REST.Attributes;
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
using NzbDrone.Core.AutoTagging;
|
||||||
using NzbDrone.Core.Datastore.Events;
|
using NzbDrone.Core.Datastore.Events;
|
||||||
using NzbDrone.Core.Messaging.Events;
|
using NzbDrone.Core.Messaging.Events;
|
||||||
using NzbDrone.Core.Tags;
|
using NzbDrone.Core.Tags;
|
||||||
|
@ -11,7 +12,9 @@
|
||||||
namespace Lidarr.Api.V1.Tags
|
namespace Lidarr.Api.V1.Tags
|
||||||
{
|
{
|
||||||
[V1ApiController]
|
[V1ApiController]
|
||||||
public class TagController : RestControllerWithSignalR<TagResource, Tag>, IHandle<TagsUpdatedEvent>
|
public class TagController : RestControllerWithSignalR<TagResource, Tag>,
|
||||||
|
IHandle<TagsUpdatedEvent>,
|
||||||
|
IHandle<AutoTagsUpdatedEvent>
|
||||||
{
|
{
|
||||||
private readonly ITagService _tagService;
|
private readonly ITagService _tagService;
|
||||||
|
|
||||||
|
@ -60,5 +63,11 @@ public void Handle(TagsUpdatedEvent message)
|
||||||
{
|
{
|
||||||
BroadcastResourceChange(ModelAction.Sync);
|
BroadcastResourceChange(ModelAction.Sync);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[NonAction]
|
||||||
|
public void Handle(AutoTagsUpdatedEvent message)
|
||||||
|
{
|
||||||
|
BroadcastResourceChange(ModelAction.Sync);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using NzbDrone.Common.Cache;
|
using NzbDrone.Common.Cache;
|
||||||
using NzbDrone.Common.Extensions;
|
using NzbDrone.Common.Extensions;
|
||||||
|
using NzbDrone.Core.Messaging.Events;
|
||||||
using NzbDrone.Core.Music;
|
using NzbDrone.Core.Music;
|
||||||
using NzbDrone.Core.RootFolders;
|
using NzbDrone.Core.RootFolders;
|
||||||
|
|
||||||
|
@ -22,14 +23,18 @@ public class AutoTaggingService : IAutoTaggingService
|
||||||
{
|
{
|
||||||
private readonly IAutoTaggingRepository _repository;
|
private readonly IAutoTaggingRepository _repository;
|
||||||
private readonly RootFolderService _rootFolderService;
|
private readonly RootFolderService _rootFolderService;
|
||||||
|
private readonly IEventAggregator _eventAggregator;
|
||||||
private readonly ICached<Dictionary<int, AutoTag>> _cache;
|
private readonly ICached<Dictionary<int, AutoTag>> _cache;
|
||||||
|
|
||||||
public AutoTaggingService(IAutoTaggingRepository repository,
|
public AutoTaggingService(IAutoTaggingRepository repository,
|
||||||
RootFolderService rootFolderService,
|
RootFolderService rootFolderService,
|
||||||
|
IEventAggregator eventAggregator,
|
||||||
ICacheManager cacheManager)
|
ICacheManager cacheManager)
|
||||||
{
|
{
|
||||||
_repository = repository;
|
_repository = repository;
|
||||||
_rootFolderService = rootFolderService;
|
_rootFolderService = rootFolderService;
|
||||||
|
_eventAggregator = eventAggregator;
|
||||||
|
|
||||||
_cache = cacheManager.GetCache<Dictionary<int, AutoTag>>(typeof(AutoTag), "autoTags");
|
_cache = cacheManager.GetCache<Dictionary<int, AutoTag>>(typeof(AutoTag), "autoTags");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -51,13 +56,17 @@ public AutoTag GetById(int id)
|
||||||
public void Update(AutoTag autoTag)
|
public void Update(AutoTag autoTag)
|
||||||
{
|
{
|
||||||
_repository.Update(autoTag);
|
_repository.Update(autoTag);
|
||||||
|
|
||||||
_cache.Clear();
|
_cache.Clear();
|
||||||
|
_eventAggregator.PublishEvent(new AutoTagsUpdatedEvent());
|
||||||
}
|
}
|
||||||
|
|
||||||
public AutoTag Insert(AutoTag autoTag)
|
public AutoTag Insert(AutoTag autoTag)
|
||||||
{
|
{
|
||||||
var result = _repository.Insert(autoTag);
|
var result = _repository.Insert(autoTag);
|
||||||
|
|
||||||
_cache.Clear();
|
_cache.Clear();
|
||||||
|
_eventAggregator.PublishEvent(new AutoTagsUpdatedEvent());
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
@ -65,7 +74,9 @@ public AutoTag Insert(AutoTag autoTag)
|
||||||
public void Delete(int id)
|
public void Delete(int id)
|
||||||
{
|
{
|
||||||
_repository.Delete(id);
|
_repository.Delete(id);
|
||||||
|
|
||||||
_cache.Clear();
|
_cache.Clear();
|
||||||
|
_eventAggregator.PublishEvent(new AutoTagsUpdatedEvent());
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<AutoTag> AllForTag(int tagId)
|
public List<AutoTag> AllForTag(int tagId)
|
||||||
|
|
8
src/NzbDrone.Core/AutoTagging/AutoTagsUpdatedEvent.cs
Normal file
8
src/NzbDrone.Core/AutoTagging/AutoTagsUpdatedEvent.cs
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
using NzbDrone.Common.Messaging;
|
||||||
|
|
||||||
|
namespace NzbDrone.Core.AutoTagging
|
||||||
|
{
|
||||||
|
public class AutoTagsUpdatedEvent : IEvent
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue