mirror of
https://github.com/jellyfin/jellyfin.git
synced 2025-12-27 11:14:47 +03:00
fix sync container statuses
This commit is contained in:
@@ -92,7 +92,6 @@ namespace MediaBrowser.Server.Implementations.Persistence
|
||||
private IDbCommand _deleteImagesCommand;
|
||||
private IDbCommand _saveImagesCommand;
|
||||
|
||||
private IDbCommand _updateInheritedRatingCommand;
|
||||
private IDbCommand _updateInheritedTagsCommand;
|
||||
|
||||
public const int LatestSchemaVersion = 109;
|
||||
@@ -412,7 +411,8 @@ namespace MediaBrowser.Server.Implementations.Persistence
|
||||
"SeasonId",
|
||||
"SeriesId",
|
||||
"SeriesSortName",
|
||||
"PresentationUniqueKey"
|
||||
"PresentationUniqueKey",
|
||||
"InheritedParentalRatingValue"
|
||||
};
|
||||
|
||||
private readonly string[] _mediaStreamSaveColumns =
|
||||
@@ -611,11 +611,6 @@ namespace MediaBrowser.Server.Implementations.Persistence
|
||||
_saveStreamCommand.Parameters.Add(_saveStreamCommand, "@" + col);
|
||||
}
|
||||
|
||||
_updateInheritedRatingCommand = _connection.CreateCommand();
|
||||
_updateInheritedRatingCommand.CommandText = "Update TypedBaseItems set InheritedParentalRatingValue=@InheritedParentalRatingValue where Guid=@Guid";
|
||||
_updateInheritedRatingCommand.Parameters.Add(_updateInheritedRatingCommand, "@Guid");
|
||||
_updateInheritedRatingCommand.Parameters.Add(_updateInheritedRatingCommand, "@InheritedParentalRatingValue");
|
||||
|
||||
_updateInheritedTagsCommand = _connection.CreateCommand();
|
||||
_updateInheritedTagsCommand.CommandText = "Update TypedBaseItems set InheritedTags=@InheritedTags where Guid=@Guid";
|
||||
_updateInheritedTagsCommand.Parameters.Add(_updateInheritedTagsCommand, "@Guid");
|
||||
@@ -1458,6 +1453,12 @@ namespace MediaBrowser.Server.Implementations.Persistence
|
||||
}
|
||||
index++;
|
||||
|
||||
if (!reader.IsDBNull(index))
|
||||
{
|
||||
item.InheritedParentalRatingValue = reader.GetInt32(index);
|
||||
}
|
||||
index++;
|
||||
|
||||
return item;
|
||||
}
|
||||
|
||||
@@ -3402,7 +3403,6 @@ namespace MediaBrowser.Server.Implementations.Persistence
|
||||
|
||||
public async Task UpdateInheritedValues(CancellationToken cancellationToken)
|
||||
{
|
||||
await UpdateInheritedParentalRating(cancellationToken).ConfigureAwait(false);
|
||||
await UpdateInheritedTags(cancellationToken).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
@@ -3482,82 +3482,6 @@ namespace MediaBrowser.Server.Implementations.Persistence
|
||||
}
|
||||
}
|
||||
|
||||
private async Task UpdateInheritedParentalRating(CancellationToken cancellationToken)
|
||||
{
|
||||
var newValues = new List<Tuple<Guid, int>>();
|
||||
|
||||
using (var cmd = _connection.CreateCommand())
|
||||
{
|
||||
cmd.CommandText = "select Guid,InheritedParentalRatingValue,(select Max(InheritedParentalRatingValue, (select COALESCE(MAX(InheritedParentalRatingValue),0) from TypedBaseItems where guid in (Select AncestorId from AncestorIds where ItemId=Outer.guid)))) as NewInheritedParentalRatingValue from typedbaseitems as Outer where InheritedParentalRatingValue <> NewInheritedParentalRatingValue";
|
||||
|
||||
using (var reader = cmd.ExecuteReader(CommandBehavior.SequentialAccess | CommandBehavior.SingleResult))
|
||||
{
|
||||
while (reader.Read())
|
||||
{
|
||||
var id = reader.GetGuid(0);
|
||||
var newValue = reader.GetInt32(2);
|
||||
|
||||
newValues.Add(new Tuple<Guid, int>(id, newValue));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Logger.Debug("UpdateInheritedParentalRatings - {0} rows", newValues.Count);
|
||||
if (newValues.Count == 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
await WriteLock.WaitAsync(cancellationToken).ConfigureAwait(false);
|
||||
|
||||
IDbTransaction transaction = null;
|
||||
|
||||
try
|
||||
{
|
||||
transaction = _connection.BeginTransaction();
|
||||
|
||||
foreach (var item in newValues)
|
||||
{
|
||||
_updateInheritedRatingCommand.GetParameter(0).Value = item.Item1;
|
||||
_updateInheritedRatingCommand.GetParameter(1).Value = item.Item2;
|
||||
|
||||
_updateInheritedRatingCommand.Transaction = transaction;
|
||||
_updateInheritedRatingCommand.ExecuteNonQuery();
|
||||
}
|
||||
|
||||
transaction.Commit();
|
||||
}
|
||||
catch (OperationCanceledException)
|
||||
{
|
||||
if (transaction != null)
|
||||
{
|
||||
transaction.Rollback();
|
||||
}
|
||||
|
||||
throw;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Logger.ErrorException("Error running query:", e);
|
||||
|
||||
if (transaction != null)
|
||||
{
|
||||
transaction.Rollback();
|
||||
}
|
||||
|
||||
throw;
|
||||
}
|
||||
finally
|
||||
{
|
||||
if (transaction != null)
|
||||
{
|
||||
transaction.Dispose();
|
||||
}
|
||||
|
||||
WriteLock.Release();
|
||||
}
|
||||
}
|
||||
|
||||
private static Dictionary<string, string[]> GetTypeMapDictionary()
|
||||
{
|
||||
var dict = new Dictionary<string, string[]>(StringComparer.OrdinalIgnoreCase);
|
||||
|
||||
Reference in New Issue
Block a user