diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-05-08 16:58:52 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-05-08 16:58:52 -0400 |
| commit | fbd052abfc2724fcb151582746c9783d7ab8a97a (patch) | |
| tree | 4b3e126d72aa53e6aa4e74c74380bdcb80bc412c /MediaBrowser.Server.Implementations/Sqlite | |
| parent | a0dfbdfd70fe85fca64b341b6fe30708e9a9ebe9 (diff) | |
removed local trailers and special features from memory
Diffstat (limited to 'MediaBrowser.Server.Implementations/Sqlite')
5 files changed, 169 insertions, 132 deletions
diff --git a/MediaBrowser.Server.Implementations/Sqlite/SQLiteDisplayPreferencesRepository.cs b/MediaBrowser.Server.Implementations/Sqlite/SQLiteDisplayPreferencesRepository.cs index ab03bdd7d..93bb174c6 100644 --- a/MediaBrowser.Server.Implementations/Sqlite/SQLiteDisplayPreferencesRepository.cs +++ b/MediaBrowser.Server.Implementations/Sqlite/SQLiteDisplayPreferencesRepository.cs @@ -132,29 +132,31 @@ namespace MediaBrowser.Server.Implementations.Sqlite cancellationToken.ThrowIfCancellationRequested(); - var cmd = connection.CreateCommand(); - cmd.CommandText = "replace into displaypreferences (id, data) values (@1, @2)"; - cmd.AddParam("@1", displayPreferences.Id); - cmd.AddParam("@2", serialized); - - using (var tran = connection.BeginTransaction()) + using (var cmd = connection.CreateCommand()) { - try + cmd.CommandText = "replace into displaypreferences (id, data) values (@1, @2)"; + cmd.AddParam("@1", displayPreferences.Id); + cmd.AddParam("@2", serialized); + + using (var tran = connection.BeginTransaction()) { - cmd.Transaction = tran; + try + { + cmd.Transaction = tran; - await cmd.ExecuteNonQueryAsync(cancellationToken); + await cmd.ExecuteNonQueryAsync(cancellationToken); - tran.Commit(); - } - catch (OperationCanceledException) - { - tran.Rollback(); - } - catch (Exception e) - { - Logger.ErrorException("Failed to commit transaction.", e); - tran.Rollback(); + tran.Commit(); + } + catch (OperationCanceledException) + { + tran.Rollback(); + } + catch (Exception e) + { + Logger.ErrorException("Failed to commit transaction.", e); + tran.Rollback(); + } } } } @@ -174,7 +176,7 @@ namespace MediaBrowser.Server.Implementations.Sqlite var cmd = connection.CreateCommand(); cmd.CommandText = "select data from displaypreferences where id = @id"; - + var idParam = cmd.Parameters.Add("@id", DbType.Guid); idParam.Value = displayPreferencesId; diff --git a/MediaBrowser.Server.Implementations/Sqlite/SQLiteItemRepository.cs b/MediaBrowser.Server.Implementations/Sqlite/SQLiteItemRepository.cs index a3d184888..9138baad0 100644 --- a/MediaBrowser.Server.Implementations/Sqlite/SQLiteItemRepository.cs +++ b/MediaBrowser.Server.Implementations/Sqlite/SQLiteItemRepository.cs @@ -1,3 +1,4 @@ +using System.Linq; using MediaBrowser.Common.Configuration; using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Persistence; @@ -156,17 +157,33 @@ namespace MediaBrowser.Server.Implementations.Sqlite /// <param name="id">The id.</param> /// <returns>BaseItem.</returns> /// <exception cref="System.ArgumentException"></exception> - public BaseItem RetrieveItem(Guid id) + public BaseItem GetItem(Guid id) { if (id == Guid.Empty) { - throw new ArgumentException(); + throw new ArgumentNullException("id"); } return RetrieveItemInternal(id); } /// <summary> + /// Retrieves the items. + /// </summary> + /// <param name="ids">The ids.</param> + /// <returns>IEnumerable{BaseItem}.</returns> + /// <exception cref="System.ArgumentNullException">ids</exception> + public IEnumerable<BaseItem> GetItems(IEnumerable<Guid> ids) + { + if (ids == null) + { + throw new ArgumentNullException("ids"); + } + + return ids.Select(RetrieveItemInternal); + } + + /// <summary> /// Internal retrieve from items or users table /// </summary> /// <param name="id">The id.</param> @@ -176,35 +193,37 @@ namespace MediaBrowser.Server.Implementations.Sqlite { if (id == Guid.Empty) { - throw new ArgumentException(); + throw new ArgumentNullException("id"); } - var cmd = connection.CreateCommand(); - cmd.CommandText = "select obj_type,data from items where guid = @guid"; - var guidParam = cmd.Parameters.Add("@guid", DbType.Guid); - guidParam.Value = id; - - using (var reader = cmd.ExecuteReader(CommandBehavior.SequentialAccess | CommandBehavior.SingleResult | CommandBehavior.SingleRow)) + using (var cmd = connection.CreateCommand()) { - if (reader.Read()) + cmd.CommandText = "select obj_type,data from items where guid = @guid"; + var guidParam = cmd.Parameters.Add("@guid", DbType.Guid); + guidParam.Value = id; + + using (var reader = cmd.ExecuteReader(CommandBehavior.SequentialAccess | CommandBehavior.SingleResult | CommandBehavior.SingleRow)) { - var type = reader.GetString(0); - using (var stream = GetStream(reader, 1)) + if (reader.Read()) { - var itemType = _typeMapper.GetType(type); - - if (itemType == null) + var type = reader.GetString(0); + using (var stream = GetStream(reader, 1)) { - Logger.Error("Cannot find type {0}. Probably belongs to plug-in that is no longer loaded.", type); - return null; - } + var itemType = _typeMapper.GetType(type); - var item = _jsonSerializer.DeserializeFromStream(stream, itemType); - return item as BaseItem; + if (itemType == null) + { + Logger.Error("Cannot find type {0}. Probably belongs to plug-in that is no longer loaded.", type); + return null; + } + + var item = _jsonSerializer.DeserializeFromStream(stream, itemType); + return item as BaseItem; + } } } + return null; } - return null; } /// <summary> @@ -220,30 +239,32 @@ namespace MediaBrowser.Server.Implementations.Sqlite throw new ArgumentNullException(); } - var cmd = connection.CreateCommand(); - cmd.CommandText = "select obj_type,data from items where guid in (select child from children where guid = @guid)"; - var guidParam = cmd.Parameters.Add("@guid", DbType.Guid); - guidParam.Value = parent.Id; - - using (var reader = cmd.ExecuteReader(CommandBehavior.SequentialAccess | CommandBehavior.SingleResult)) + using (var cmd = connection.CreateCommand()) { - while (reader.Read()) - { - var type = reader.GetString(0); + cmd.CommandText = "select obj_type,data from items where guid in (select child from children where guid = @guid)"; + var guidParam = cmd.Parameters.Add("@guid", DbType.Guid); + guidParam.Value = parent.Id; - using (var stream = GetStream(reader, 1)) + using (var reader = cmd.ExecuteReader(CommandBehavior.SequentialAccess | CommandBehavior.SingleResult)) + { + while (reader.Read()) { - var itemType = _typeMapper.GetType(type); - if (itemType == null) - { - Logger.Error("Cannot find type {0}. Probably belongs to plug-in that is no longer loaded.", type); - continue; - } - var item = _jsonSerializer.DeserializeFromStream(stream, itemType) as BaseItem; - if (item != null) + var type = reader.GetString(0); + + using (var stream = GetStream(reader, 1)) { - item.Parent = parent; - yield return item; + var itemType = _typeMapper.GetType(type); + if (itemType == null) + { + Logger.Error("Cannot find type {0}. Probably belongs to plug-in that is no longer loaded.", type); + continue; + } + var item = _jsonSerializer.DeserializeFromStream(stream, itemType) as BaseItem; + if (item != null) + { + item.Parent = parent; + yield return item; + } } } } diff --git a/MediaBrowser.Server.Implementations/Sqlite/SQLiteRepository.cs b/MediaBrowser.Server.Implementations/Sqlite/SQLiteRepository.cs index 897ece764..6aeb63d9b 100644 --- a/MediaBrowser.Server.Implementations/Sqlite/SQLiteRepository.cs +++ b/MediaBrowser.Server.Implementations/Sqlite/SQLiteRepository.cs @@ -121,13 +121,14 @@ namespace MediaBrowser.Server.Implementations.Sqlite { try { - var cmd = connection.CreateCommand(); - - foreach (var query in queries) + using (var cmd = connection.CreateCommand()) { - cmd.Transaction = tran; - cmd.CommandText = query; - cmd.ExecuteNonQuery(); + foreach (var query in queries) + { + cmd.Transaction = tran; + cmd.CommandText = query; + cmd.ExecuteNonQuery(); + } } tran.Commit(); @@ -268,6 +269,9 @@ namespace MediaBrowser.Server.Implementations.Sqlite command.Transaction = tran; command.ExecuteNonQuery(); + + command.Dispose(); + numCommands++; } diff --git a/MediaBrowser.Server.Implementations/Sqlite/SQLiteUserDataRepository.cs b/MediaBrowser.Server.Implementations/Sqlite/SQLiteUserDataRepository.cs index 8b4dcd49d..4e3f17750 100644 --- a/MediaBrowser.Server.Implementations/Sqlite/SQLiteUserDataRepository.cs +++ b/MediaBrowser.Server.Implementations/Sqlite/SQLiteUserDataRepository.cs @@ -184,30 +184,32 @@ namespace MediaBrowser.Server.Implementations.Sqlite cancellationToken.ThrowIfCancellationRequested(); - var cmd = connection.CreateCommand(); - cmd.CommandText = "replace into userdata (key, userId, data) values (@1, @2, @3)"; - cmd.AddParam("@1", key); - cmd.AddParam("@2", userId); - cmd.AddParam("@3", serialized); - - using (var tran = connection.BeginTransaction()) + using (var cmd = connection.CreateCommand()) { - try + cmd.CommandText = "replace into userdata (key, userId, data) values (@1, @2, @3)"; + cmd.AddParam("@1", key); + cmd.AddParam("@2", userId); + cmd.AddParam("@3", serialized); + + using (var tran = connection.BeginTransaction()) { - cmd.Transaction = tran; + try + { + cmd.Transaction = tran; - await cmd.ExecuteNonQueryAsync(cancellationToken); + await cmd.ExecuteNonQueryAsync(cancellationToken); - tran.Commit(); - } - catch (OperationCanceledException) - { - tran.Rollback(); - } - catch (Exception e) - { - Logger.ErrorException("Failed to commit transaction.", e); - tran.Rollback(); + tran.Commit(); + } + catch (OperationCanceledException) + { + tran.Rollback(); + } + catch (Exception e) + { + Logger.ErrorException("Failed to commit transaction.", e); + tran.Rollback(); + } } } } @@ -245,27 +247,29 @@ namespace MediaBrowser.Server.Implementations.Sqlite /// <returns>Task{UserItemData}.</returns> private async Task<UserItemData> RetrieveUserData(Guid userId, string key) { - var cmd = connection.CreateCommand(); - cmd.CommandText = "select data from userdata where key = @key and userId=@userId"; + using (var cmd = connection.CreateCommand()) + { + cmd.CommandText = "select data from userdata where key = @key and userId=@userId"; - var idParam = cmd.Parameters.Add("@key", DbType.String); - idParam.Value = key; + var idParam = cmd.Parameters.Add("@key", DbType.String); + idParam.Value = key; - var userIdParam = cmd.Parameters.Add("@userId", DbType.Guid); - userIdParam.Value = userId; + var userIdParam = cmd.Parameters.Add("@userId", DbType.Guid); + userIdParam.Value = userId; - using (var reader = await cmd.ExecuteReaderAsync(CommandBehavior.SequentialAccess | CommandBehavior.SingleResult | CommandBehavior.SingleRow).ConfigureAwait(false)) - { - if (reader.Read()) + using (var reader = await cmd.ExecuteReaderAsync(CommandBehavior.SequentialAccess | CommandBehavior.SingleResult | CommandBehavior.SingleRow).ConfigureAwait(false)) { - using (var stream = GetStream(reader, 0)) + if (reader.Read()) { - return _jsonSerializer.DeserializeFromStream<UserItemData>(stream); + using (var stream = GetStream(reader, 0)) + { + return _jsonSerializer.DeserializeFromStream<UserItemData>(stream); + } } } - } - return new UserItemData(); + return new UserItemData(); + } } } } diff --git a/MediaBrowser.Server.Implementations/Sqlite/SQLiteUserRepository.cs b/MediaBrowser.Server.Implementations/Sqlite/SQLiteUserRepository.cs index b95a54156..eb5868932 100644 --- a/MediaBrowser.Server.Implementations/Sqlite/SQLiteUserRepository.cs +++ b/MediaBrowser.Server.Implementations/Sqlite/SQLiteUserRepository.cs @@ -127,29 +127,31 @@ namespace MediaBrowser.Server.Implementations.Sqlite cancellationToken.ThrowIfCancellationRequested(); - var cmd = connection.CreateCommand(); - cmd.CommandText = "replace into users (guid, data) values (@1, @2)"; - cmd.AddParam("@1", user.Id); - cmd.AddParam("@2", serialized); - - using (var tran = connection.BeginTransaction()) + using (var cmd = connection.CreateCommand()) { - try + cmd.CommandText = "replace into users (guid, data) values (@1, @2)"; + cmd.AddParam("@1", user.Id); + cmd.AddParam("@2", serialized); + + using (var tran = connection.BeginTransaction()) { - cmd.Transaction = tran; + try + { + cmd.Transaction = tran; - await cmd.ExecuteNonQueryAsync(cancellationToken); + await cmd.ExecuteNonQueryAsync(cancellationToken); - tran.Commit(); - } - catch (OperationCanceledException) - { - tran.Rollback(); - } - catch (Exception e) - { - Logger.ErrorException("Failed to commit transaction.", e); - tran.Rollback(); + tran.Commit(); + } + catch (OperationCanceledException) + { + tran.Rollback(); + } + catch (Exception e) + { + Logger.ErrorException("Failed to commit transaction.", e); + tran.Rollback(); + } } } } @@ -160,17 +162,19 @@ namespace MediaBrowser.Server.Implementations.Sqlite /// <returns>IEnumerable{User}.</returns> public IEnumerable<User> RetrieveAllUsers() { - var cmd = connection.CreateCommand(); - cmd.CommandText = "select data from users"; - - using (var reader = cmd.ExecuteReader(CommandBehavior.SequentialAccess | CommandBehavior.SingleResult)) + using (var cmd = connection.CreateCommand()) { - while (reader.Read()) + cmd.CommandText = "select data from users"; + + using (var reader = cmd.ExecuteReader(CommandBehavior.SequentialAccess | CommandBehavior.SingleResult)) { - using (var stream = GetStream(reader, 0)) + while (reader.Read()) { - var user = _jsonSerializer.DeserializeFromStream<User>(stream); - yield return user; + using (var stream = GetStream(reader, 0)) + { + var user = _jsonSerializer.DeserializeFromStream<User>(stream); + yield return user; + } } } } @@ -197,12 +201,14 @@ namespace MediaBrowser.Server.Implementations.Sqlite cancellationToken.ThrowIfCancellationRequested(); - var cmd = connection.CreateCommand(); - cmd.CommandText = "delete from users where guid=@guid"; - var guidParam = cmd.Parameters.Add("@guid", DbType.Guid); - guidParam.Value = user.Id; + using (var cmd = connection.CreateCommand()) + { + cmd.CommandText = "delete from users where guid=@guid"; + var guidParam = cmd.Parameters.Add("@guid", DbType.Guid); + guidParam.Value = user.Id; - return ExecuteCommand(cmd); + return ExecuteCommand(cmd); + } } } } |
