feat: wrap writes in a transaction

This commit is contained in:
goat 2023-09-28 00:43:25 +02:00
parent f027b684ed
commit c1fd08cc93
No known key found for this signature in database
GPG key ID: 49E2AA8C6A76498B

View file

@ -95,6 +95,8 @@ public class ReliableFileStorage : IServiceType, IDisposable
{ {
ArgumentException.ThrowIfNullOrEmpty(path); ArgumentException.ThrowIfNullOrEmpty(path);
this.db.RunInTransaction(() =>
{
var normalizedPath = NormalizePath(path); var normalizedPath = NormalizePath(path);
var file = this.db.Table<DbFile>().FirstOrDefault(f => f.Path == normalizedPath && f.ContainerId == containerId); var file = this.db.Table<DbFile>().FirstOrDefault(f => f.Path == normalizedPath && f.ContainerId == containerId);
if (file == null) if (file == null)
@ -114,6 +116,7 @@ public class ReliableFileStorage : IServiceType, IDisposable
} }
Util.WriteAllBytesSafe(path, bytes); Util.WriteAllBytesSafe(path, bytes);
});
} }
/// <summary> /// <summary>