/Horizon/Database/SnapshotDatabase.cs |
@@ -382,7 +382,7 @@ |
} |
} |
|
public async Task SetCompleteSnapshotAsync(TransferSnapshot transferSnapshot, CancellationToken cancellationToken) |
public async Task ApplyTransferSnapshotAsync(TransferSnapshot transferSnapshot, CancellationToken cancellationToken) |
{ |
await _databaseLock.WaitAsync(cancellationToken); |
try |
@@ -392,6 +392,7 @@ |
{ |
await sqliteConnection.OpenAsync(cancellationToken); |
|
var color = Color.Empty; |
using (var dbTransaction = sqliteConnection.BeginTransaction()) |
{ |
try |
@@ -445,11 +446,13 @@ |
{ |
case 0: |
sqliteCommand.Parameters.Add( |
new SQLiteParameter("@color", null)); |
new SQLiteParameter("@color", DBNull.Value)); |
color = Color.Empty; |
break; |
default: |
sqliteCommand.Parameters.Add( |
new SQLiteParameter("@color", numeric)); |
color = Color.FromArgb(transferSnapshot.Color); |
break; |
} |
|
@@ -502,10 +505,13 @@ |
dbTransaction.Commit(); |
|
SnapshotCreate?.Invoke(this, |
new SnapshotCreateSuccessEventArgs(transferSnapshot.Name, |
transferSnapshot.Time, transferSnapshot.Path, |
Color.FromArgb(transferSnapshot.Color), |
transferSnapshot.Hash)); |
new SnapshotCreateSuccessEventArgs( |
transferSnapshot.Name, |
transferSnapshot.Time, |
transferSnapshot.Path, |
color, |
transferSnapshot.Hash) |
); |
} |
} |
} |
@@ -519,8 +525,12 @@ |
if (exception.ResultCode != SQLiteErrorCode.Constraint) |
{ |
SnapshotCreate?.Invoke(this, |
new SnapshotCreateFailureEventArgs(transferSnapshot.Name, transferSnapshot.Path, |
Color.FromArgb(transferSnapshot.Color), exception)); |
new SnapshotCreateFailureEventArgs( |
transferSnapshot.Name, |
transferSnapshot.Path, |
color, |
exception) |
); |
} |
|
throw; |
@@ -530,8 +540,12 @@ |
dbTransaction.Rollback(); |
|
SnapshotCreate?.Invoke(this, |
new SnapshotCreateFailureEventArgs(transferSnapshot.Name, transferSnapshot.Path, |
Color.FromArgb(transferSnapshot.Color), exception)); |
new SnapshotCreateFailureEventArgs( |
transferSnapshot.Name, |
transferSnapshot.Path, |
color, |
exception) |
); |
|
throw; |
} |
@@ -545,7 +559,7 @@ |
} |
|
|
public async Task<TransferSnapshot> GetCompleteSnapshot(string hash, CancellationToken cancellationToken) |
public async Task<TransferSnapshot> GenerateTransferSnapshotAsync(string hash, CancellationToken cancellationToken) |
{ |
await _databaseLock.WaitAsync(cancellationToken); |
try |
@@ -722,7 +736,7 @@ |
{ |
case 0: |
sqliteCommand.Parameters.Add( |
new SQLiteParameter("@color", null)); |
new SQLiteParameter("@color", DBNull.Value)); |
break; |
default: |
sqliteCommand.Parameters.Add( |
@@ -877,7 +891,7 @@ |
{ |
case 0: |
sqliteCommand.Parameters.Add( |
new SQLiteParameter("@color", null)); |
new SQLiteParameter("@color", DBNull.Value)); |
break; |
default: |
sqliteCommand.Parameters.Add( |
@@ -1267,10 +1281,22 @@ |
{ |
sqliteCommand.Parameters.AddRange(new[] |
{ |
new SQLiteParameter("@hash", hash), |
new SQLiteParameter("@color", color.ToArgb()) |
new SQLiteParameter("@hash", hash) |
}); |
|
var numeric = color.ToArgb(); |
switch (numeric) |
{ |
case 0: |
sqliteCommand.Parameters.Add( |
new SQLiteParameter("@color", DBNull.Value)); |
break; |
default: |
sqliteCommand.Parameters.Add( |
new SQLiteParameter("@color", numeric)); |
break; |
} |
|
sqliteCommand.Prepare(); |
|
try |