fix display preferences save

This commit is contained in:
Luke Pulverenti 2013-04-05 16:24:46 -04:00
parent 23c8a91976
commit f4f3d1255e

View File

@ -95,7 +95,7 @@ namespace MediaBrowser.Server.Implementations.Sqlite
/// <param name="cancellationToken">The cancellation token.</param> /// <param name="cancellationToken">The cancellation token.</param>
/// <returns>Task.</returns> /// <returns>Task.</returns>
/// <exception cref="System.ArgumentNullException">item</exception> /// <exception cref="System.ArgumentNullException">item</exception>
public Task SaveDisplayPreferences(DisplayPreferences displayPreferences, CancellationToken cancellationToken) public async Task SaveDisplayPreferences(DisplayPreferences displayPreferences, CancellationToken cancellationToken)
{ {
if (displayPreferences == null) if (displayPreferences == null)
{ {
@ -112,18 +112,35 @@ namespace MediaBrowser.Server.Implementations.Sqlite
cancellationToken.ThrowIfCancellationRequested(); cancellationToken.ThrowIfCancellationRequested();
return Task.Run(() =>
{
var serialized = _protobufSerializer.SerializeToBytes(displayPreferences); var serialized = _protobufSerializer.SerializeToBytes(displayPreferences);
cancellationToken.ThrowIfCancellationRequested(); cancellationToken.ThrowIfCancellationRequested();
var cmd = connection.CreateCommand(); var cmd = connection.CreateCommand();
cmd.CommandText = "replace into displaypreferences (id, data) values (@1, @3)"; cmd.CommandText = "replace into displaypreferences (id, data) values (@1, @2)";
cmd.AddParam("@1", displayPreferences.Id); cmd.AddParam("@1", displayPreferences.Id);
cmd.AddParam("@2", serialized); cmd.AddParam("@2", serialized);
QueueCommand(cmd);
}); using (var tran = connection.BeginTransaction())
{
try
{
cmd.Transaction = tran;
await cmd.ExecuteNonQueryAsync(cancellationToken);
tran.Commit();
}
catch (OperationCanceledException)
{
tran.Rollback();
}
catch (Exception e)
{
Logger.ErrorException("Failed to commit transaction.", e);
tran.Rollback();
}
}
} }
/// <summary> /// <summary>