aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Server.Implementations/Persistence/SqliteItemRepository.cs
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2016-08-18 11:13:18 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2016-08-18 11:13:18 -0400
commit845c4a0d62e05b89d0a8bc3900b54e3c2cb75168 (patch)
tree2bd865ac971f73181eee80af05409369623dc216 /MediaBrowser.Server.Implementations/Persistence/SqliteItemRepository.cs
parent389487638ec358c975f7573c8b6132525f3925ab (diff)
update item by name validators
Diffstat (limited to 'MediaBrowser.Server.Implementations/Persistence/SqliteItemRepository.cs')
-rw-r--r--MediaBrowser.Server.Implementations/Persistence/SqliteItemRepository.cs46
1 files changed, 46 insertions, 0 deletions
diff --git a/MediaBrowser.Server.Implementations/Persistence/SqliteItemRepository.cs b/MediaBrowser.Server.Implementations/Persistence/SqliteItemRepository.cs
index 8006e2b08..f04b9f50a 100644
--- a/MediaBrowser.Server.Implementations/Persistence/SqliteItemRepository.cs
+++ b/MediaBrowser.Server.Implementations/Persistence/SqliteItemRepository.cs
@@ -3880,6 +3880,52 @@ namespace MediaBrowser.Server.Implementations.Persistence
return GetItemValues(query, new[] { 2 }, typeof(MusicGenre).FullName);
}
+ public List<string> GetStudioNames()
+ {
+ return GetItemValueNames(new[] { 3 });
+ }
+
+ public List<string> GetAllArtistNames()
+ {
+ return GetItemValueNames(new[] { 0, 1 });
+ }
+
+ private List<string> GetItemValueNames(int[] itemValueTypes)
+ {
+ CheckDisposed();
+
+ var now = DateTime.UtcNow;
+
+ var typeClause = itemValueTypes.Length == 1 ?
+ ("Type=" + itemValueTypes[0].ToString(CultureInfo.InvariantCulture)) :
+ ("Type in (" + string.Join(",", itemValueTypes.Select(i => i.ToString(CultureInfo.InvariantCulture)).ToArray()) + ")");
+
+ var list = new List<string>();
+
+ using (var cmd = _connection.CreateCommand())
+ {
+ cmd.CommandText = "Select Value From ItemValues where " + typeClause + " Group By CleanValue";
+
+ var commandBehavior = CommandBehavior.SequentialAccess | CommandBehavior.SingleResult;
+
+ using (var reader = cmd.ExecuteReader(commandBehavior))
+ {
+ LogQueryTime("GetItemValueNames", cmd, now);
+
+ while (reader.Read())
+ {
+ if (!reader.IsDBNull(0))
+ {
+ list.Add(reader.GetString(0));
+ }
+ }
+ }
+
+ }
+
+ return list;
+ }
+
private QueryResult<Tuple<BaseItem, ItemCounts>> GetItemValues(InternalItemsQuery query, int[] itemValueTypes, string returnType)
{
if (query == null)