using System;
using System.Threading.Tasks;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Logging;
namespace Jellyfin.Database.Implementations.Locking;
///
/// Default lock behavior. Defines no explicit application locking behavior.
///
public class NoLockBehavior : IEntityFrameworkCoreLockingBehavior
{
private readonly ILogger _logger;
///
/// Initializes a new instance of the class.
///
/// The Application logger.
public NoLockBehavior(ILogger logger)
{
_logger = logger;
}
///
public void OnSaveChanges(JellyfinDbContext context, Action saveChanges)
{
saveChanges();
}
///
public void Initialise(DbContextOptionsBuilder optionsBuilder)
{
_logger.LogInformation("The database locking mode has been set to: NoLock.");
}
///
public async Task OnSaveChangesAsync(JellyfinDbContext context, Func saveChanges)
{
await saveChanges().ConfigureAwait(false);
}
}