diff options
| author | Luke <luke.pulverenti@gmail.com> | 2017-02-18 03:33:34 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-02-18 03:33:34 -0500 |
| commit | 0c4f78be3adb91e241e16d5acbff4d8008622486 (patch) | |
| tree | 4edc47d7e8b5d856f50b4ded10f132e38c5d1517 /Emby.Server.Implementations/Notifications/SqliteNotificationsRepository.cs | |
| parent | 94dc4da335278c41eeb2ea415d08218a4edc3971 (diff) | |
| parent | f52df8d612fc376df97e14cb830e036a3f217364 (diff) | |
Merge pull request #2476 from MediaBrowser/dev
Dev
Diffstat (limited to 'Emby.Server.Implementations/Notifications/SqliteNotificationsRepository.cs')
| -rw-r--r-- | Emby.Server.Implementations/Notifications/SqliteNotificationsRepository.cs | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/Emby.Server.Implementations/Notifications/SqliteNotificationsRepository.cs b/Emby.Server.Implementations/Notifications/SqliteNotificationsRepository.cs index f18278cb2..76c7a7d77 100644 --- a/Emby.Server.Implementations/Notifications/SqliteNotificationsRepository.cs +++ b/Emby.Server.Implementations/Notifications/SqliteNotificationsRepository.cs @@ -8,6 +8,7 @@ using System.Threading.Tasks; using Emby.Server.Implementations.Data; using MediaBrowser.Controller; using MediaBrowser.Controller.Notifications; +using MediaBrowser.Model.IO; using MediaBrowser.Model.Logging; using MediaBrowser.Model.Notifications; using SQLitePCL.pretty; @@ -16,8 +17,11 @@ namespace Emby.Server.Implementations.Notifications { public class SqliteNotificationsRepository : BaseSqliteRepository, INotificationsRepository { - public SqliteNotificationsRepository(ILogger logger, IServerApplicationPaths appPaths) : base(logger) + protected IFileSystem FileSystem { get; private set; } + + public SqliteNotificationsRepository(ILogger logger, IServerApplicationPaths appPaths, IFileSystem fileSystem) : base(logger) { + FileSystem = fileSystem; DbFilePath = Path.Combine(appPaths.DataPath, "notifications.db"); } @@ -27,6 +31,22 @@ namespace Emby.Server.Implementations.Notifications public void Initialize() { + try + { + InitializeInternal(); + } + catch (Exception ex) + { + Logger.ErrorException("Error loading notifications database file. Will reset and retry.", ex); + + FileSystem.DeleteFile(DbFilePath); + + InitializeInternal(); + } + } + + private void InitializeInternal() + { using (var connection = CreateConnection()) { RunDefaultInitialization(connection); |
