denormalize series fields

This commit is contained in:
Luke Pulverenti
2016-07-04 16:11:30 -04:00
parent 46dc02705a
commit 26036837dd
8 changed files with 89 additions and 50 deletions

View File

@@ -1076,15 +1076,11 @@ namespace MediaBrowser.Server.Implementations.Dto
dto.PreferredMetadataCountryCode = item.PreferredMetadataCountryCode;
dto.PreferredMetadataLanguage = item.PreferredMetadataLanguage;
var hasCriticRating = item as IHasCriticRating;
if (hasCriticRating != null)
{
dto.CriticRating = hasCriticRating.CriticRating;
dto.CriticRating = item.CriticRating;
if (fields.Contains(ItemFields.CriticRatingSummary))
{
dto.CriticRatingSummary = hasCriticRating.CriticRatingSummary;
}
if (fields.Contains(ItemFields.CriticRatingSummary))
{
dto.CriticRatingSummary = item.CriticRatingSummary;
}
var hasTrailers = item as IHasTrailers;
@@ -1127,11 +1123,7 @@ namespace MediaBrowser.Server.Implementations.Dto
if (fields.Contains(ItemFields.ShortOverview))
{
var hasShortOverview = item as IHasShortOverview;
if (hasShortOverview != null)
{
dto.ShortOverview = hasShortOverview.ShortOverview;
}
dto.ShortOverview = item.ShortOverview;
}
// If there are no backdrops, indicate what parent has them in case the Ui wants to allow inheritance
@@ -1426,14 +1418,7 @@ namespace MediaBrowser.Server.Implementations.Dto
dto.SeasonId = seasonId.Value.ToString("N");
}
var episodeSeason = episode.Season;
if (episodeSeason != null)
{
if (fields.Contains(ItemFields.SeasonName))
{
dto.SeasonName = episodeSeason.Name;
}
}
dto.SeasonName = episode.SeasonName;
var episodeSeries = episode.Series;
@@ -1483,14 +1468,19 @@ namespace MediaBrowser.Server.Implementations.Dto
var season = item as Season;
if (season != null)
{
dto.SeriesName = season.SeriesName;
series = season.Series;
if (series != null)
{
dto.SeriesId = GetDtoId(series);
dto.SeriesName = series.Name;
dto.AirTime = series.AirTime;
dto.SeriesStudio = series.Studios.FirstOrDefault();
if (fields.Contains(ItemFields.SeriesStudio))
{
dto.SeriesStudio = series.Studios.FirstOrDefault();
}
if (options.GetImageLimit(ImageType.Primary) > 0)
{

View File

@@ -95,7 +95,7 @@ namespace MediaBrowser.Server.Implementations.Persistence
private IDbCommand _updateInheritedRatingCommand;
private IDbCommand _updateInheritedTagsCommand;
public const int LatestSchemaVersion = 97;
public const int LatestSchemaVersion = 99;
/// <summary>
/// Initializes a new instance of the <see cref="SqliteItemRepository"/> class.
@@ -271,6 +271,7 @@ namespace MediaBrowser.Server.Implementations.Persistence
_connection.AddColumn(Logger, "TypedBaseItems", "IsVirtualItem", "BIT");
_connection.AddColumn(Logger, "TypedBaseItems", "SeriesName", "Text");
_connection.AddColumn(Logger, "TypedBaseItems", "UserDataKey", "Text");
_connection.AddColumn(Logger, "TypedBaseItems", "SeasonName", "Text");
_connection.AddColumn(Logger, "UserDataKeys", "Priority", "INT");
_connection.AddColumn(Logger, "ItemValues", "CleanValue", "Text");
@@ -402,7 +403,9 @@ namespace MediaBrowser.Server.Implementations.Persistence
"Album",
"CriticRating",
"CriticRatingSummary",
"IsVirtualItem"
"IsVirtualItem",
"SeriesName",
"SeasonName"
};
private readonly string[] _mediaStreamSaveColumns =
@@ -522,7 +525,8 @@ namespace MediaBrowser.Server.Implementations.Persistence
"Album",
"IsVirtualItem",
"SeriesName",
"UserDataKey"
"UserDataKey",
"SeasonName"
};
_saveItemCommand = _connection.CreateCommand();
_saveItemCommand.CommandText = "replace into TypedBaseItems (" + string.Join(",", saveColumns.ToArray()) + ") values (";
@@ -944,7 +948,7 @@ namespace MediaBrowser.Server.Implementations.Persistence
var hasSeries = item as IHasSeries;
if (hasSeries != null)
{
_saveItemCommand.GetParameter(index++).Value = hasSeries.SeriesName;
_saveItemCommand.GetParameter(index++).Value = hasSeries.FindSeriesName();
}
else
{
@@ -953,6 +957,16 @@ namespace MediaBrowser.Server.Implementations.Persistence
_saveItemCommand.GetParameter(index++).Value = item.GetUserDataKeys().FirstOrDefault();
var episode = item as Episode;
if (episode != null)
{
_saveItemCommand.GetParameter(index++).Value = episode.FindSeasonName();
}
else
{
_saveItemCommand.GetParameter(index++).Value = null;
}
_saveItemCommand.Transaction = transaction;
_saveItemCommand.ExecuteNonQuery();
@@ -1375,6 +1389,24 @@ namespace MediaBrowser.Server.Implementations.Persistence
item.IsVirtualItem = reader.GetBoolean(58);
}
var hasSeries = item as IHasSeries;
if (hasSeries != null)
{
if (!reader.IsDBNull(59))
{
hasSeries.SeriesName = reader.GetString(59);
}
}
var episode = item as Episode;
if (episode != null)
{
if (!reader.IsDBNull(60))
{
episode.SeasonName = reader.GetString(60);
}
}
return item;
}