mirror of
https://github.com/Kareadita/Kavita.git
synced 2026-06-05 14:25:17 -04:00
28f082b653
Co-authored-by: Ansh Raj <anshraj220109+github@proton.me> Co-authored-by: Amelia <77553571+Fesaa@users.noreply.github.com> Co-authored-by: Weblate (bot) <hosted@weblate.org> Co-authored-by: Adam Havránek <adamhavra@seznam.cz> Co-authored-by: Gregory.Open <gregory.open@proton.me> Co-authored-by: Lyrq <lyrq.ku@gmail.com> Co-authored-by: oxygen44k <iiccpp@outlook.com> Co-authored-by: Grez Kull <grezkull@users.noreply.hosted.weblate.org>
50 lines
2.3 KiB
C#
50 lines
2.3 KiB
C#
using System.Threading;
|
|
using System.Threading.Tasks;
|
|
using Kavita.API.Repositories;
|
|
|
|
namespace Kavita.API.Database;
|
|
|
|
public interface IUnitOfWork
|
|
{
|
|
IDataContext DataContext { get; }
|
|
ISeriesRepository SeriesRepository { get; }
|
|
IUserRepository UserRepository { get; }
|
|
ILibraryRepository LibraryRepository { get; }
|
|
IVolumeRepository VolumeRepository { get; }
|
|
ISettingsRepository SettingsRepository { get; }
|
|
IAppUserProgressRepository AppUserProgressRepository { get; }
|
|
ICollectionTagRepository CollectionTagRepository { get; }
|
|
IChapterRepository ChapterRepository { get; }
|
|
IReadingListRepository ReadingListRepository { get; }
|
|
ISeriesMetadataRepository SeriesMetadataRepository { get; }
|
|
IPersonRepository PersonRepository { get; }
|
|
IGenreRepository GenreRepository { get; }
|
|
ITagRepository TagRepository { get; }
|
|
ISiteThemeRepository SiteThemeRepository { get; }
|
|
IMangaFileRepository MangaFileRepository { get; }
|
|
IDeviceRepository DeviceRepository { get; }
|
|
IMediaErrorRepository MediaErrorRepository { get; }
|
|
IScrobbleRepository ScrobbleRepository { get; }
|
|
IUserTableOfContentRepository UserTableOfContentRepository { get; }
|
|
IAppUserSmartFilterRepository AppUserSmartFilterRepository { get; }
|
|
IAppUserExternalSourceRepository AppUserExternalSourceRepository { get; }
|
|
IExternalSeriesMetadataRepository ExternalSeriesMetadataRepository { get; }
|
|
IEmailHistoryRepository EmailHistoryRepository { get; }
|
|
IAppUserReadingProfileRepository AppUserReadingProfileRepository { get; }
|
|
IAnnotationRepository AnnotationRepository { get; }
|
|
IEpubFontRepository EpubFontRepository { get; }
|
|
IReadingSessionRepository ReadingSessionRepository { get; }
|
|
IClientDeviceRepository ClientDeviceRepository { get; }
|
|
IReadingListRemapRuleRepository RemapRuleRepository { get; }
|
|
IKavitaPlusAuditRepository KavitaPlusAuditRepository { get; }
|
|
|
|
/// <summary>
|
|
/// Commits pending changes to the database inside an IMMEDIATE transaction so writer
|
|
/// contention waits on the SQLite writer lock (via busy_timeout) instead of failing with
|
|
/// SQLITE_BUSY_SNAPSHOT.
|
|
/// </summary>
|
|
Task<bool> CommitAsync(CancellationToken ct = default);
|
|
bool HasChanges();
|
|
Task<bool> RollbackAsync(CancellationToken ct = default);
|
|
}
|