Luke Pulverenti пре 8 година
родитељ
комит
7f62a99ab5

+ 10 - 10
Emby.Server.Implementations/Activity/ActivityRepository.cs

@@ -59,16 +59,16 @@ namespace Emby.Server.Implementations.Activity
                     {
                         using (var statement = db.PrepareStatement("replace into ActivityLogEntries (Id, Name, Overview, ShortOverview, Type, ItemId, UserId, DateCreated, LogSeverity) values (@Id, @Name, @Overview, @ShortOverview, @Type, @ItemId, @UserId, @DateCreated, @LogSeverity)"))
                         {
-                            statement.BindParameters.TryBind("@Id", entry.Id.ToGuidParamValue());
-                            statement.BindParameters.TryBind("@Name", entry.Name);
-
-                            statement.BindParameters.TryBind("@Overview", entry.Overview);
-                            statement.BindParameters.TryBind("@ShortOverview", entry.ShortOverview);
-                            statement.BindParameters.TryBind("@Type", entry.Type);
-                            statement.BindParameters.TryBind("@ItemId", entry.ItemId);
-                            statement.BindParameters.TryBind("@UserId", entry.UserId);
-                            statement.BindParameters.TryBind("@DateCreated", entry.Date.ToDateTimeParamValue());
-                            statement.BindParameters.TryBind("@LogSeverity", entry.Severity.ToString());
+                            statement.TryBind("@Id", entry.Id.ToGuidParamValue());
+                            statement.TryBind("@Name", entry.Name);
+
+                            statement.TryBind("@Overview", entry.Overview);
+                            statement.TryBind("@ShortOverview", entry.ShortOverview);
+                            statement.TryBind("@Type", entry.Type);
+                            statement.TryBind("@ItemId", entry.ItemId);
+                            statement.TryBind("@UserId", entry.UserId);
+                            statement.TryBind("@DateCreated", entry.Date.ToDateTimeParamValue());
+                            statement.TryBind("@LogSeverity", entry.Severity.ToString());
 
                             statement.MoveNext();
                         }

+ 8 - 8
Emby.Server.Implementations/Data/SqliteDisplayPreferencesRepository.cs

@@ -104,10 +104,10 @@ namespace Emby.Server.Implementations.Data
             {
                 var serialized = _jsonSerializer.SerializeToBytes(displayPreferences, _memoryStreamProvider);
 
-                statement.BindParameters.TryBind("@id", displayPreferences.Id.ToGuidParamValue());
-                statement.BindParameters.TryBind("@userId", userId.ToGuidParamValue());
-                statement.BindParameters.TryBind("@client", client);
-                statement.BindParameters.TryBind("@data", serialized);
+                statement.TryBind("@id", displayPreferences.Id.ToGuidParamValue());
+                statement.TryBind("@userId", userId.ToGuidParamValue());
+                statement.TryBind("@client", client);
+                statement.TryBind("@data", serialized);
 
                 statement.MoveNext();
             }
@@ -168,9 +168,9 @@ namespace Emby.Server.Implementations.Data
                 {
                     using (var statement = connection.PrepareStatement("select data from userdisplaypreferences where id = @id and userId=@userId and client=@client"))
                     {
-                        statement.BindParameters.TryBind("@id", guidId.ToGuidParamValue());
-                        statement.BindParameters.TryBind("@userId", userId.ToGuidParamValue());
-                        statement.BindParameters.TryBind("@client", client);
+                        statement.TryBind("@id", guidId.ToGuidParamValue());
+                        statement.TryBind("@userId", userId.ToGuidParamValue());
+                        statement.TryBind("@client", client);
 
                         foreach (var row in statement.ExecuteQuery())
                         {
@@ -202,7 +202,7 @@ namespace Emby.Server.Implementations.Data
                 {
                     using (var statement = connection.PrepareStatement("select data from userdisplaypreferences where userId=@userId"))
                     {
-                        statement.BindParameters.TryBind("@userId", userId.ToGuidParamValue());
+                        statement.TryBind("@userId", userId.ToGuidParamValue());
 
                         foreach (var row in statement.ExecuteQuery())
                         {

+ 101 - 14
Emby.Server.Implementations/Data/SqliteExtensions.cs

@@ -173,69 +173,156 @@ namespace Emby.Server.Implementations.Data
             return result[index].ReadGuid();
         }
 
-        public static void TryBind(this IReadOnlyDictionary<string, IBindParameter> bindParameters, string name, double value)
+        public static void TryBind(this IStatement statement, string name, double value)
         {
             IBindParameter bindParam;
-            if (bindParameters.TryGetValue(name, out bindParam))
+            if (statement.BindParameters.TryGetValue(name, out bindParam))
             {
                 bindParam.Bind(value);
             }
         }
 
-        public static void TryBind(this IReadOnlyDictionary<string, IBindParameter> bindParameters, string name, string value)
+        public static void TryBind(this IStatement statement, string name, string value)
         {
             IBindParameter bindParam;
-            if (bindParameters.TryGetValue(name, out bindParam))
+            if (statement.BindParameters.TryGetValue(name, out bindParam))
             {
                 bindParam.Bind(value);
             }
         }
 
-        public static void TryBind(this IReadOnlyDictionary<string, IBindParameter> bindParameters, string name, bool value)
+        public static void TryBind(this IStatement statement, string name, bool value)
         {
             IBindParameter bindParam;
-            if (bindParameters.TryGetValue(name, out bindParam))
+            if (statement.BindParameters.TryGetValue(name, out bindParam))
             {
                 bindParam.Bind(value);
             }
         }
 
-        public static void TryBind(this IReadOnlyDictionary<string, IBindParameter> bindParameters, string name, int value)
+        public static void TryBind(this IStatement statement, string name, float value)
         {
             IBindParameter bindParam;
-            if (bindParameters.TryGetValue(name, out bindParam))
+            if (statement.BindParameters.TryGetValue(name, out bindParam))
             {
                 bindParam.Bind(value);
             }
         }
 
-        public static void TryBind(this IReadOnlyDictionary<string, IBindParameter> bindParameters, string name, long value)
+        public static void TryBind(this IStatement statement, string name, int value)
         {
             IBindParameter bindParam;
-            if (bindParameters.TryGetValue(name, out bindParam))
+            if (statement.BindParameters.TryGetValue(name, out bindParam))
             {
                 bindParam.Bind(value);
             }
         }
 
-        public static void TryBind(this IReadOnlyDictionary<string, IBindParameter> bindParameters, string name, byte[] value)
+        public static void TryBind(this IStatement statement, string name, Guid value)
         {
             IBindParameter bindParam;
-            if (bindParameters.TryGetValue(name, out bindParam))
+            if (statement.BindParameters.TryGetValue(name, out bindParam))
+            {
+                bindParam.Bind(value.ToGuidParamValue());
+            }
+        }
+
+        public static void TryBind(this IStatement statement, string name, DateTime value)
+        {
+            IBindParameter bindParam;
+            if (statement.BindParameters.TryGetValue(name, out bindParam))
+            {
+                bindParam.Bind(value.ToDateTimeParamValue());
+            }
+        }
+
+        public static void TryBind(this IStatement statement, string name, long value)
+        {
+            IBindParameter bindParam;
+            if (statement.BindParameters.TryGetValue(name, out bindParam))
             {
                 bindParam.Bind(value);
             }
         }
 
-        public static void TryBindNull(this IReadOnlyDictionary<string, IBindParameter> bindParameters, string name)
+        public static void TryBind(this IStatement statement, string name, byte[] value)
         {
             IBindParameter bindParam;
-            if (bindParameters.TryGetValue(name, out bindParam))
+            if (statement.BindParameters.TryGetValue(name, out bindParam))
+            {
+                bindParam.Bind(value);
+            }
+        }
+
+        public static void TryBindNull(this IStatement statement, string name)
+        {
+            IBindParameter bindParam;
+            if (statement.BindParameters.TryGetValue(name, out bindParam))
             {
                 bindParam.BindNull();
             }
         }
 
+        public static void TryBind(this IStatement statement, string name, DateTime? value)
+        {
+            if (value.HasValue)
+            {
+                TryBind(statement, name, value.Value);
+            }
+            else
+            {
+                TryBindNull(statement, name);
+            }
+        }
+
+        public static void TryBind(this IStatement statement, string name, Guid? value)
+        {
+            if (value.HasValue)
+            {
+                TryBind(statement, name, value.Value);
+            }
+            else
+            {
+                TryBindNull(statement, name);
+            }
+        }
+
+        public static void TryBind(this IStatement statement, string name, int? value)
+        {
+            if (value.HasValue)
+            {
+                TryBind(statement, name, value.Value);
+            }
+            else
+            {
+                TryBindNull(statement, name);
+            }
+        }
+
+        public static void TryBind(this IStatement statement, string name, float? value)
+        {
+            if (value.HasValue)
+            {
+                TryBind(statement, name, value.Value);
+            }
+            else
+            {
+                TryBindNull(statement, name);
+            }
+        }
+
+        public static void TryBind(this IStatement statement, string name, bool? value)
+        {
+            if (value.HasValue)
+            {
+                TryBind(statement, name, value.Value);
+            }
+            else
+            {
+                TryBindNull(statement, name);
+            }
+        }
+
         public static IEnumerable<IReadOnlyList<IResultSetValue>> ExecuteQuery(
             this IStatement This)
         {

+ 17 - 17
Emby.Server.Implementations/Data/SqliteUserDataRepository.cs

@@ -152,48 +152,48 @@
 //        {
 //            using (var statement = _connection.PrepareStatement("replace into userdata (key, userId, rating,played,playCount,isFavorite,playbackPositionTicks,lastPlayedDate,AudioStreamIndex,SubtitleStreamIndex) values (@key, @userId, @rating,@played,@playCount,@isFavorite,@playbackPositionTicks,@lastPlayedDate,@AudioStreamIndex,@SubtitleStreamIndex)"))
 //            {
-//                statement.BindParameters.TryBind("@UserId", userId.ToGuidParamValue());
-//                statement.BindParameters.TryBind("@Key", key);
+//                statement.TryBind("@UserId", userId.ToGuidParamValue());
+//                statement.TryBind("@Key", key);
 
 //                if (userData.Rating.HasValue)
 //                {
-//                    statement.BindParameters.TryBind("@rating", userData.Rating.Value);
+//                    statement.TryBind("@rating", userData.Rating.Value);
 //                }
 //                else
 //                {
-//                    statement.BindParameters.TryBindNull("@rating");
+//                    statement.TryBindNull("@rating");
 //                }
 
-//                statement.BindParameters.TryBind("@played", userData.Played);
-//                statement.BindParameters.TryBind("@playCount", userData.PlayCount);
-//                statement.BindParameters.TryBind("@isFavorite", userData.IsFavorite);
-//                statement.BindParameters.TryBind("@playbackPositionTicks", userData.PlaybackPositionTicks);
+//                statement.TryBind("@played", userData.Played);
+//                statement.TryBind("@playCount", userData.PlayCount);
+//                statement.TryBind("@isFavorite", userData.IsFavorite);
+//                statement.TryBind("@playbackPositionTicks", userData.PlaybackPositionTicks);
 
 //                if (userData.LastPlayedDate.HasValue)
 //                {
-//                    statement.BindParameters.TryBind("@lastPlayedDate", userData.LastPlayedDate.Value.ToDateTimeParamValue());
+//                    statement.TryBind("@lastPlayedDate", userData.LastPlayedDate.Value.ToDateTimeParamValue());
 //                }
 //                else
 //                {
-//                    statement.BindParameters.TryBindNull("@lastPlayedDate");
+//                    statement.TryBindNull("@lastPlayedDate");
 //                }
 
 //                if (userData.AudioStreamIndex.HasValue)
 //                {
-//                    statement.BindParameters.TryBind("@AudioStreamIndex", userData.AudioStreamIndex.Value);
+//                    statement.TryBind("@AudioStreamIndex", userData.AudioStreamIndex.Value);
 //                }
 //                else
 //                {
-//                    statement.BindParameters.TryBindNull("@AudioStreamIndex");
+//                    statement.TryBindNull("@AudioStreamIndex");
 //                }
 
 //                if (userData.SubtitleStreamIndex.HasValue)
 //                {
-//                    statement.BindParameters.TryBind("@SubtitleStreamIndex", userData.SubtitleStreamIndex.Value);
+//                    statement.TryBind("@SubtitleStreamIndex", userData.SubtitleStreamIndex.Value);
 //                }
 //                else
 //                {
-//                    statement.BindParameters.TryBindNull("@SubtitleStreamIndex");
+//                    statement.TryBindNull("@SubtitleStreamIndex");
 //                }
 
 //                statement.MoveNext();
@@ -243,8 +243,8 @@
 
 //            using (var statement = _connection.PrepareStatement("select key,userid,rating,played,playCount,isFavorite,playbackPositionTicks,lastPlayedDate,AudioStreamIndex,SubtitleStreamIndex from userdata where key =@Key and userId=@UserId"))
 //            {
-//                statement.BindParameters.TryBind("@UserId", userId.ToGuidParamValue());
-//                statement.BindParameters.TryBind("@Key", key);
+//                statement.TryBind("@UserId", userId.ToGuidParamValue());
+//                statement.TryBind("@Key", key);
 
 //                foreach (var row in statement.ExecuteQuery())
 //                {
@@ -292,7 +292,7 @@
 //            {
 //                using (var statement = _connection.PrepareStatement("select key,userid,rating,played,playCount,isFavorite,playbackPositionTicks,lastPlayedDate,AudioStreamIndex,SubtitleStreamIndex from userdata where userId=@UserId"))
 //                {
-//                    statement.BindParameters.TryBind("@UserId", userId.ToGuidParamValue());
+//                    statement.TryBind("@UserId", userId.ToGuidParamValue());
 
 //                    foreach (var row in statement.ExecuteQuery())
 //                    {

+ 3 - 3
Emby.Server.Implementations/Data/SqliteUserRepository.cs

@@ -91,8 +91,8 @@ namespace Emby.Server.Implementations.Data
                     {
                         using (var statement = db.PrepareStatement("replace into users (guid, data) values (@guid, @data)"))
                         {
-                            statement.BindParameters.TryBind("@guid", user.Id.ToGuidParamValue());
-                            statement.BindParameters.TryBind("@data", serialized);
+                            statement.TryBind("@guid", user.Id.ToGuidParamValue());
+                            statement.TryBind("@data", serialized);
                             statement.MoveNext();
                         }
                     });
@@ -154,7 +154,7 @@ namespace Emby.Server.Implementations.Data
                     {
                         using (var statement = db.PrepareStatement("delete from users where guid=@id"))
                         {
-                            statement.BindParameters.TryBind("@id", user.Id.ToGuidParamValue());
+                            statement.TryBind("@id", user.Id.ToGuidParamValue());
                             statement.MoveNext();
                         }
                     });

+ 17 - 17
Emby.Server.Implementations/Notifications/SqliteNotificationsRepository.cs

@@ -109,8 +109,8 @@ namespace Emby.Server.Implementations.Notifications
                 {
                     using (var statement = connection.PrepareStatement("select Level from Notifications where UserId=@UserId and IsRead=@IsRead"))
                     {
-                        statement.BindParameters.TryBind("@IsRead", false);
-                        statement.BindParameters.TryBind("@UserId", userId.ToGuidParamValue());
+                        statement.TryBind("@IsRead", false);
+                        statement.TryBind("@UserId", userId.ToGuidParamValue());
 
                         foreach (var row in statement.ExecuteQuery())
                         {
@@ -228,16 +228,16 @@ namespace Emby.Server.Implementations.Notifications
                     {
                         using (var statement = conn.PrepareStatement("replace into Notifications (Id, UserId, Date, Name, Description, Url, Level, IsRead, Category, RelatedId) values (@Id, @UserId, @Date, @Name, @Description, @Url, @Level, @IsRead, @Category, @RelatedId)"))
                         {
-                            statement.BindParameters.TryBind("@Id", notification.Id.ToGuidParamValue());
-                            statement.BindParameters.TryBind("@UserId", notification.UserId.ToGuidParamValue());
-                            statement.BindParameters.TryBind("@Date", notification.Date.ToDateTimeParamValue());
-                            statement.BindParameters.TryBind("@Name", notification.Name);
-                            statement.BindParameters.TryBind("@Description", notification.Description);
-                            statement.BindParameters.TryBind("@Url", notification.Url);
-                            statement.BindParameters.TryBind("@Level", notification.Level.ToString());
-                            statement.BindParameters.TryBind("@IsRead", notification.IsRead);
-                            statement.BindParameters.TryBind("@Category", string.Empty);
-                            statement.BindParameters.TryBind("@RelatedId", string.Empty);
+                            statement.TryBind("@Id", notification.Id.ToGuidParamValue());
+                            statement.TryBind("@UserId", notification.UserId.ToGuidParamValue());
+                            statement.TryBind("@Date", notification.Date.ToDateTimeParamValue());
+                            statement.TryBind("@Name", notification.Name);
+                            statement.TryBind("@Description", notification.Description);
+                            statement.TryBind("@Url", notification.Url);
+                            statement.TryBind("@Level", notification.Level.ToString());
+                            statement.TryBind("@IsRead", notification.IsRead);
+                            statement.TryBind("@Category", string.Empty);
+                            statement.TryBind("@RelatedId", string.Empty);
 
                             statement.MoveNext();
                         }
@@ -291,8 +291,8 @@ namespace Emby.Server.Implementations.Notifications
                     {
                         using (var statement = conn.PrepareStatement("update Notifications set IsRead=@IsRead where UserId=@UserId"))
                         {
-                            statement.BindParameters.TryBind("@IsRead", isRead);
-                            statement.BindParameters.TryBind("@UserId", userId.ToGuidParamValue());
+                            statement.TryBind("@IsRead", isRead);
+                            statement.TryBind("@UserId", userId.ToGuidParamValue());
 
                             statement.MoveNext();
                         }
@@ -313,14 +313,14 @@ namespace Emby.Server.Implementations.Notifications
                     {
                         using (var statement = conn.PrepareStatement("update Notifications set IsRead=@IsRead where UserId=@UserId and Id=@Id"))
                         {
-                            statement.BindParameters.TryBind("@IsRead", isRead);
-                            statement.BindParameters.TryBind("@UserId", userId.ToGuidParamValue());
+                            statement.TryBind("@IsRead", isRead);
+                            statement.TryBind("@UserId", userId.ToGuidParamValue());
 
                             foreach (var id in notificationIdList)
                             {
                                 statement.Reset();
 
-                                statement.BindParameters.TryBind("@Id", id.ToGuidParamValue());
+                                statement.TryBind("@Id", id.ToGuidParamValue());
 
                                 statement.MoveNext();
                             }

+ 15 - 15
Emby.Server.Implementations/Security/AuthenticationRepository.cs

@@ -71,24 +71,24 @@ namespace Emby.Server.Implementations.Security
                     {
                         using (var statement = db.PrepareStatement("replace into AccessTokens (Id, AccessToken, DeviceId, AppName, AppVersion, DeviceName, UserId, IsActive, DateCreated, DateRevoked) values (@Id, @AccessToken, @DeviceId, @AppName, @AppVersion, @DeviceName, @UserId, @IsActive, @DateCreated, @DateRevoked)"))
                         {
-                            statement.BindParameters.TryBind("@Id", info.Id.ToGuidParamValue());
-                            statement.BindParameters.TryBind("@AccessToken", info.AccessToken);
+                            statement.TryBind("@Id", info.Id.ToGuidParamValue());
+                            statement.TryBind("@AccessToken", info.AccessToken);
 
-                            statement.BindParameters.TryBind("@DeviceId", info.DeviceId);
-                            statement.BindParameters.TryBind("@AppName", info.AppName);
-                            statement.BindParameters.TryBind("@AppVersion", info.AppVersion);
-                            statement.BindParameters.TryBind("@DeviceName", info.DeviceName);
-                            statement.BindParameters.TryBind("@UserId", info.UserId);
-                            statement.BindParameters.TryBind("@IsActive", info.IsActive);
-                            statement.BindParameters.TryBind("@DateCreated", info.DateCreated.ToDateTimeParamValue());
+                            statement.TryBind("@DeviceId", info.DeviceId);
+                            statement.TryBind("@AppName", info.AppName);
+                            statement.TryBind("@AppVersion", info.AppVersion);
+                            statement.TryBind("@DeviceName", info.DeviceName);
+                            statement.TryBind("@UserId", info.UserId);
+                            statement.TryBind("@IsActive", info.IsActive);
+                            statement.TryBind("@DateCreated", info.DateCreated.ToDateTimeParamValue());
 
                             if (info.DateRevoked.HasValue)
                             {
-                                statement.BindParameters.TryBind("@DateRevoked", info.DateRevoked.Value.ToDateTimeParamValue());
+                                statement.TryBind("@DateRevoked", info.DateRevoked.Value.ToDateTimeParamValue());
                             }
                             else
                             {
-                                statement.BindParameters.TryBindNull("@DateRevoked");
+                                statement.TryBindNull("@DateRevoked");
                             }
 
                             statement.MoveNext();
@@ -104,22 +104,22 @@ namespace Emby.Server.Implementations.Security
         {
             if (!string.IsNullOrWhiteSpace(query.AccessToken))
             {
-                statement.BindParameters.TryBind("@AccessToken", query.AccessToken);
+                statement.TryBind("@AccessToken", query.AccessToken);
             }
 
             if (!string.IsNullOrWhiteSpace(query.UserId))
             {
-                statement.BindParameters.TryBind("@UserId", query.UserId);
+                statement.TryBind("@UserId", query.UserId);
             }
 
             if (!string.IsNullOrWhiteSpace(query.DeviceId))
             {
-                statement.BindParameters.TryBind("@DeviceId", query.DeviceId);
+                statement.TryBind("@DeviceId", query.DeviceId);
             }
 
             if (query.IsActive.HasValue)
             {
-                statement.BindParameters.TryBind("@IsActive", query.IsActive.Value);
+                statement.TryBind("@IsActive", query.IsActive.Value);
             }
         }
 

+ 2 - 2
Emby.Server.Implementations/Sync/SyncRepository.cs

@@ -515,7 +515,7 @@ namespace Emby.Server.Implementations.Sync
                     {
                         if (!string.IsNullOrWhiteSpace(query.TargetId))
                         {
-                            statement.BindParameters.TryBind("@TargetId", query.TargetId);
+                            statement.TryBind("@TargetId", query.TargetId);
                         }
 
                         foreach (var row in statement.ExecuteQuery())
@@ -535,7 +535,7 @@ namespace Emby.Server.Implementations.Sync
                     {
                         if (!string.IsNullOrWhiteSpace(query.TargetId))
                         {
-                            statement.BindParameters.TryBind("@TargetId", query.TargetId);
+                            statement.TryBind("@TargetId", query.TargetId);
                         }
 
                         foreach (var row in statement.ExecuteQuery())