|
|
@ -72,7 +72,7 @@ namespace MediaBrowser.Server.Implementations.Persistence
|
|
|
|
private IDbCommand _deletePeopleCommand;
|
|
|
|
private IDbCommand _deletePeopleCommand;
|
|
|
|
private IDbCommand _savePersonCommand;
|
|
|
|
private IDbCommand _savePersonCommand;
|
|
|
|
|
|
|
|
|
|
|
|
private const int LatestSchemaVersion = 4;
|
|
|
|
private const int LatestSchemaVersion = 6;
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// <summary>
|
|
|
|
/// Initializes a new instance of the <see cref="SqliteItemRepository"/> class.
|
|
|
|
/// Initializes a new instance of the <see cref="SqliteItemRepository"/> class.
|
|
|
@ -173,6 +173,9 @@ namespace MediaBrowser.Server.Implementations.Persistence
|
|
|
|
_connection.AddColumn(_logger, "TypedBaseItems", "DateCreated", "DATETIME");
|
|
|
|
_connection.AddColumn(_logger, "TypedBaseItems", "DateCreated", "DATETIME");
|
|
|
|
_connection.AddColumn(_logger, "TypedBaseItems", "DateModified", "DATETIME");
|
|
|
|
_connection.AddColumn(_logger, "TypedBaseItems", "DateModified", "DATETIME");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
_connection.AddColumn(_logger, "TypedBaseItems", "ForcedSortName", "Text");
|
|
|
|
|
|
|
|
_connection.AddColumn(_logger, "TypedBaseItems", "IsOffline", "BIT");
|
|
|
|
|
|
|
|
|
|
|
|
PrepareStatements();
|
|
|
|
PrepareStatements();
|
|
|
|
|
|
|
|
|
|
|
|
_mediaStreamsRepository.Initialize();
|
|
|
|
_mediaStreamsRepository.Initialize();
|
|
|
@ -223,7 +226,9 @@ namespace MediaBrowser.Server.Implementations.Persistence
|
|
|
|
"VoteCount",
|
|
|
|
"VoteCount",
|
|
|
|
"DisplayMediaType",
|
|
|
|
"DisplayMediaType",
|
|
|
|
"DateCreated",
|
|
|
|
"DateCreated",
|
|
|
|
"DateModified"
|
|
|
|
"DateModified",
|
|
|
|
|
|
|
|
"ForcedSortName",
|
|
|
|
|
|
|
|
"IsOffline"
|
|
|
|
};
|
|
|
|
};
|
|
|
|
_saveItemCommand = _connection.CreateCommand();
|
|
|
|
_saveItemCommand = _connection.CreateCommand();
|
|
|
|
_saveItemCommand.CommandText = "replace into TypedBaseItems (" + string.Join(",", saveColumns.ToArray()) + ") values (";
|
|
|
|
_saveItemCommand.CommandText = "replace into TypedBaseItems (" + string.Join(",", saveColumns.ToArray()) + ") values (";
|
|
|
@ -391,6 +396,9 @@ namespace MediaBrowser.Server.Implementations.Persistence
|
|
|
|
_saveItemCommand.GetParameter(index++).Value = item.DateCreated;
|
|
|
|
_saveItemCommand.GetParameter(index++).Value = item.DateCreated;
|
|
|
|
_saveItemCommand.GetParameter(index++).Value = item.DateModified;
|
|
|
|
_saveItemCommand.GetParameter(index++).Value = item.DateModified;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
_saveItemCommand.GetParameter(index++).Value = item.ForcedSortName;
|
|
|
|
|
|
|
|
_saveItemCommand.GetParameter(index++).Value = item.IsOffline;
|
|
|
|
|
|
|
|
|
|
|
|
_saveItemCommand.Transaction = transaction;
|
|
|
|
_saveItemCommand.Transaction = transaction;
|
|
|
|
|
|
|
|
|
|
|
|
_saveItemCommand.ExecuteNonQuery();
|
|
|
|
_saveItemCommand.ExecuteNonQuery();
|
|
|
@ -948,7 +956,6 @@ namespace MediaBrowser.Server.Implementations.Persistence
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
var includeTypes = query.IncludeItemTypes.SelectMany(MapIncludeItemTypes).ToArray();
|
|
|
|
var includeTypes = query.IncludeItemTypes.SelectMany(MapIncludeItemTypes).ToArray();
|
|
|
|
|
|
|
|
|
|
|
|
if (includeTypes.Length == 1)
|
|
|
|
if (includeTypes.Length == 1)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
whereClauses.Add("type=@type");
|
|
|
|
whereClauses.Add("type=@type");
|
|
|
@ -959,6 +966,19 @@ namespace MediaBrowser.Server.Implementations.Persistence
|
|
|
|
var inClause = string.Join(",", includeTypes.Select(i => "'" + i + "'").ToArray());
|
|
|
|
var inClause = string.Join(",", includeTypes.Select(i => "'" + i + "'").ToArray());
|
|
|
|
whereClauses.Add(string.Format("type in ({0})", inClause));
|
|
|
|
whereClauses.Add(string.Format("type in ({0})", inClause));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var excludeTypes = query.ExcludeItemTypes.SelectMany(MapIncludeItemTypes).ToArray();
|
|
|
|
|
|
|
|
if (excludeTypes.Length == 1)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
whereClauses.Add("type<>@type");
|
|
|
|
|
|
|
|
cmd.Parameters.Add(cmd, "@type", DbType.String).Value = excludeTypes[0];
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else if (excludeTypes.Length > 1)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
var inClause = string.Join(",", excludeTypes.Select(i => "'" + i + "'").ToArray());
|
|
|
|
|
|
|
|
whereClauses.Add(string.Format("type not in ({0})", inClause));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (query.ChannelIds.Length == 1)
|
|
|
|
if (query.ChannelIds.Length == 1)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
whereClauses.Add("ChannelId=@ChannelId");
|
|
|
|
whereClauses.Add("ChannelId=@ChannelId");
|
|
|
|