1
0
mirror of https://github.com/Radarr/Radarr.git synced 2026-04-22 22:15:17 -04:00

Fixed: Significantly improved api performance.

This commit is contained in:
Taloth Saldono
2016-03-25 01:56:29 +01:00
parent ff6737314f
commit a2536deef0
118 changed files with 2195 additions and 1019 deletions
+18 -13
View File
@@ -10,7 +10,6 @@ using NzbDrone.Core.MediaFiles.Events;
using NzbDrone.Core.Messaging.Events;
using NzbDrone.Core.SeriesStats;
using NzbDrone.Core.Tv;
using NzbDrone.Api.Mapping;
using NzbDrone.Core.Tv.Events;
using NzbDrone.Core.Validation.Paths;
using NzbDrone.Core.DataAugmentation.Scene;
@@ -84,14 +83,14 @@ namespace NzbDrone.Api.Series
private SeriesResource GetSeries(int id)
{
var series = _seriesService.GetSeries(id);
return GetSeriesResource(series);
return MapToResource(series);
}
private SeriesResource GetSeriesResource(Core.Tv.Series series)
private SeriesResource MapToResource(Core.Tv.Series series)
{
if (series == null) return null;
var resource = series.InjectTo<SeriesResource>();
var resource = series.ToResource();
MapCoversToLocal(resource);
FetchAndLinkSeriesStatistics(resource);
PopulateAlternateTitles(resource);
@@ -102,7 +101,7 @@ namespace NzbDrone.Api.Series
private List<SeriesResource> AllSeries()
{
var seriesStats = _seriesStatisticsService.SeriesStatistics();
var seriesResources = ToListResource(_seriesService.GetAllSeries);
var seriesResources = _seriesService.GetAllSeries().ToResource();
MapCoversToLocal(seriesResources.ToArray());
LinkSeriesStatistics(seriesResources, seriesStats);
@@ -113,14 +112,16 @@ namespace NzbDrone.Api.Series
private int AddSeries(SeriesResource seriesResource)
{
var series = _seriesService.AddSeries(seriesResource.InjectTo<Core.Tv.Series>());
var model = seriesResource.ToModel();
return series.Id;
return _seriesService.AddSeries(model).Id;
}
private void UpdateSeries(SeriesResource seriesResource)
{
GetNewId<Core.Tv.Series>(_seriesService.UpdateSeries, seriesResource);
var model = seriesResource.ToModel(_seriesService.GetSeries(seriesResource.Id));
_seriesService.UpdateSeries(model);
BroadcastResourceChange(ModelAction.Updated, seriesResource);
}
@@ -153,9 +154,11 @@ namespace NzbDrone.Api.Series
private void LinkSeriesStatistics(List<SeriesResource> resources, List<SeriesStatistics> seriesStatistics)
{
var dictSeriesStats = seriesStatistics.ToDictionary(v => v.SeriesId);
foreach (var series in resources)
{
var stats = seriesStatistics.SingleOrDefault(ss => ss.SeriesId == series.Id);
var stats = dictSeriesStats.GetValueOrDefault(series.Id);
if (stats == null) continue;
LinkSeriesStatistics(series, stats);
@@ -173,9 +176,11 @@ namespace NzbDrone.Api.Series
if (seriesStatistics.SeasonStatistics != null)
{
foreach (var season in resource.Seasons)
var dictSeasonStats = seriesStatistics.SeasonStatistics.ToDictionary(v => v.SeasonNumber);
foreach (var season in resource.Seasons)
{
season.Statistics = seriesStatistics.SeasonStatistics.SingleOrDefault(s => s.SeasonNumber == season.SeasonNumber).InjectTo<SeasonStatisticsResource>();
season.Statistics = SeasonStatisticsResourceMapper.ToResource(dictSeasonStats.GetValueOrDefault(season.SeasonNumber));
}
}
}
@@ -194,7 +199,7 @@ namespace NzbDrone.Api.Series
if (mappings == null) return;
resource.AlternateTitles = mappings.InjectTo<List<AlternateTitleResource>>();
resource.AlternateTitles = mappings.Select(v => new AlternateTitleResource { Title = v.Title, SeasonNumber = v.SeasonNumber, SceneSeasonNumber = v.SceneSeasonNumber }).ToList();
}
public void Handle(EpisodeImportedEvent message)
@@ -221,7 +226,7 @@ namespace NzbDrone.Api.Series
public void Handle(SeriesDeletedEvent message)
{
BroadcastResourceChange(ModelAction.Deleted, message.Series.InjectTo<SeriesResource>());
BroadcastResourceChange(ModelAction.Deleted, message.Series.ToResource());
}
public void Handle(SeriesRenamedEvent message)