1
0
mirror of https://github.com/Sonarr/Sonarr.git synced 2024-10-29 23:12:39 +01:00

Fixed: Refresh tags after updating autotags

This commit is contained in:
Bogdan 2024-09-05 14:56:36 +03:00 committed by Mark McDowall
parent a929548ae3
commit 6a332b40ac
3 changed files with 29 additions and 1 deletions

View File

@ -2,6 +2,7 @@ using System.Collections.Generic;
using System.Linq;
using NzbDrone.Common.Cache;
using NzbDrone.Common.Extensions;
using NzbDrone.Core.Messaging.Events;
using NzbDrone.Core.RootFolders;
using NzbDrone.Core.Tv;
@ -22,14 +23,18 @@ namespace NzbDrone.Core.AutoTagging
{
private readonly IAutoTaggingRepository _repository;
private readonly RootFolderService _rootFolderService;
private readonly IEventAggregator _eventAggregator;
private readonly ICached<Dictionary<int, AutoTag>> _cache;
public AutoTaggingService(IAutoTaggingRepository repository,
RootFolderService rootFolderService,
IEventAggregator eventAggregator,
ICacheManager cacheManager)
{
_repository = repository;
_rootFolderService = rootFolderService;
_eventAggregator = eventAggregator;
_cache = cacheManager.GetCache<Dictionary<int, AutoTag>>(typeof(AutoTag), "autoTags");
}
@ -51,13 +56,17 @@ namespace NzbDrone.Core.AutoTagging
public void Update(AutoTag autoTag)
{
_repository.Update(autoTag);
_cache.Clear();
_eventAggregator.PublishEvent(new AutoTagsUpdatedEvent());
}
public AutoTag Insert(AutoTag autoTag)
{
var result = _repository.Insert(autoTag);
_cache.Clear();
_eventAggregator.PublishEvent(new AutoTagsUpdatedEvent());
return result;
}
@ -65,7 +74,9 @@ namespace NzbDrone.Core.AutoTagging
public void Delete(int id)
{
_repository.Delete(id);
_cache.Clear();
_eventAggregator.PublishEvent(new AutoTagsUpdatedEvent());
}
public List<AutoTag> AllForTag(int tagId)

View File

@ -0,0 +1,8 @@
using NzbDrone.Common.Messaging;
namespace NzbDrone.Core.AutoTagging
{
public class AutoTagsUpdatedEvent : IEvent
{
}
}

View File

@ -1,5 +1,6 @@
using System.Collections.Generic;
using Microsoft.AspNetCore.Mvc;
using NzbDrone.Core.AutoTagging;
using NzbDrone.Core.Datastore.Events;
using NzbDrone.Core.Messaging.Events;
using NzbDrone.Core.Tags;
@ -11,7 +12,9 @@ using Sonarr.Http.REST.Attributes;
namespace Sonarr.Api.V3.Tags
{
[V3ApiController]
public class TagController : RestControllerWithSignalR<TagResource, Tag>, IHandle<TagsUpdatedEvent>
public class TagController : RestControllerWithSignalR<TagResource, Tag>,
IHandle<TagsUpdatedEvent>,
IHandle<AutoTagsUpdatedEvent>
{
private readonly ITagService _tagService;
@ -60,5 +63,11 @@ namespace Sonarr.Api.V3.Tags
{
BroadcastResourceChange(ModelAction.Sync);
}
[NonAction]
public void Handle(AutoTagsUpdatedEvent message)
{
BroadcastResourceChange(ModelAction.Sync);
}
}
}