diff options
Diffstat (limited to 'Emby.Server.Implementations/Data/SqliteUserDataRepository.cs')
| -rw-r--r-- | Emby.Server.Implementations/Data/SqliteUserDataRepository.cs | 97 |
1 files changed, 61 insertions, 36 deletions
diff --git a/Emby.Server.Implementations/Data/SqliteUserDataRepository.cs b/Emby.Server.Implementations/Data/SqliteUserDataRepository.cs index 5556c4502..8aa3698b8 100644 --- a/Emby.Server.Implementations/Data/SqliteUserDataRepository.cs +++ b/Emby.Server.Implementations/Data/SqliteUserDataRepository.cs @@ -150,29 +150,54 @@ // private void SaveUserData(IDatabaseConnection db, Guid userId, string key, UserItemData userData) // { -// var paramList = new List<object>(); -// var commandText = "replace into userdata (key, userId, rating,played,playCount,isFavorite,playbackPositionTicks,lastPlayedDate,AudioStreamIndex,SubtitleStreamIndex) values (?, ?, ?,?,?,?,?,?,?,?)"; - -// paramList.Add(key); -// paramList.Add(userId.ToGuidParamValue()); -// paramList.Add(userData.Rating); -// paramList.Add(userData.Played); -// paramList.Add(userData.PlayCount); -// paramList.Add(userData.IsFavorite); -// paramList.Add(userData.PlaybackPositionTicks); - -// if (userData.LastPlayedDate.HasValue) +// 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)")) // { -// paramList.Add(userData.LastPlayedDate.Value.ToDateTimeParamValue()); -// } -// else -// { -// paramList.Add(null); -// } -// paramList.Add(userData.AudioStreamIndex); -// paramList.Add(userData.SubtitleStreamIndex); +// statement.BindParameters.TryBind("@UserId", userId.ToGuidParamValue()); +// statement.BindParameters.TryBind("@Key", key); + +// if (userData.Rating.HasValue) +// { +// statement.BindParameters.TryBind("@rating", userData.Rating.Value); +// } +// else +// { +// statement.BindParameters.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); -// db.Execute(commandText, paramList.ToArray()); +// if (userData.LastPlayedDate.HasValue) +// { +// statement.BindParameters.TryBind("@lastPlayedDate", userData.LastPlayedDate.Value.ToDateTimeParamValue()); +// } +// else +// { +// statement.BindParameters.TryBindNull("@lastPlayedDate"); +// } + +// if (userData.AudioStreamIndex.HasValue) +// { +// statement.BindParameters.TryBind("@AudioStreamIndex", userData.AudioStreamIndex.Value); +// } +// else +// { +// statement.BindParameters.TryBindNull("@AudioStreamIndex"); +// } + +// if (userData.SubtitleStreamIndex.HasValue) +// { +// statement.BindParameters.TryBind("@SubtitleStreamIndex", userData.SubtitleStreamIndex.Value); +// } +// else +// { +// statement.BindParameters.TryBindNull("@SubtitleStreamIndex"); +// } + +// statement.MoveNext(); +// } // } // /// <summary> @@ -216,15 +241,15 @@ // throw new ArgumentNullException("key"); // } -// var commandText = "select key,userid,rating,played,playCount,isFavorite,playbackPositionTicks,lastPlayedDate,AudioStreamIndex,SubtitleStreamIndex from userdata where key = ? and userId=?"; - -// var paramList = new List<object>(); -// paramList.Add(key); -// paramList.Add(userId.ToGuidParamValue()); - -// foreach (var row in _connection.Query(commandText, paramList.ToArray())) +// using (var statement = _connection.PrepareStatement("select key,userid,rating,played,playCount,isFavorite,playbackPositionTicks,lastPlayedDate,AudioStreamIndex,SubtitleStreamIndex from userdata where key =@Key and userId=@UserId")) // { -// return ReadRow(row); +// statement.BindParameters.TryBind("@UserId", userId.ToGuidParamValue()); +// statement.BindParameters.TryBind("@Key", key); + +// foreach (var row in statement.ExecuteQuery()) +// { +// return ReadRow(row); +// } // } // return null; @@ -265,14 +290,14 @@ // using (WriteLock.Read()) // { -// var commandText = "select key,userid,rating,played,playCount,isFavorite,playbackPositionTicks,lastPlayedDate,AudioStreamIndex,SubtitleStreamIndex from userdata where userId=?"; - -// var paramList = new List<object>(); -// paramList.Add(userId.ToGuidParamValue()); - -// foreach (var row in _connection.Query(commandText, paramList.ToArray())) +// using (var statement = _connection.PrepareStatement("select key,userid,rating,played,playCount,isFavorite,playbackPositionTicks,lastPlayedDate,AudioStreamIndex,SubtitleStreamIndex from userdata where userId=@UserId")) // { -// list.Add(ReadRow(row)); +// statement.BindParameters.TryBind("@UserId", userId.ToGuidParamValue()); + +// foreach (var row in statement.ExecuteQuery()) +// { +// list.Add(ReadRow(row)); +// } // } // } |
