Esempio n. 1
0
        public ScheduledJobsRunnerModule(ISettingsService <PlexRequestSettings> settingsService,
                                         ISecurityExtensions security, IPlexContentCacher contentCacher, ISonarrCacher sonarrCacher, IWatcherCacher watcherCacher,
                                         IRadarrCacher radarrCacher, ICouchPotatoCacher cpCacher, IStoreBackup store, ISickRageCacher srCacher, IAvailabilityChecker plexChceker,
                                         IStoreCleanup cleanup, IUserRequestLimitResetter requestLimit, IPlexEpisodeCacher episodeCacher, IRecentlyAdded recentlyAdded,
                                         IFaultQueueHandler faultQueueHandler, IPlexUserChecker plexUserChecker) : base("admin", settingsService, security)
        {
            Before += (ctx) => Security.AdminLoginRedirect(Permissions.Administrator, ctx);

            PlexContentCacher   = contentCacher;
            SonarrCacher        = sonarrCacher;
            RadarrCacher        = radarrCacher;
            WatcherCacher       = watcherCacher;
            CpCacher            = cpCacher;
            StoreBackup         = store;
            SrCacher            = srCacher;
            AvailabilityChecker = plexChceker;
            StoreCleanup        = cleanup;
            RequestLimit        = requestLimit;
            EpisodeCacher       = episodeCacher;
            RecentlyAdded       = recentlyAdded;
            FaultQueueHandler   = faultQueueHandler;
            PlexUserChecker     = plexUserChecker;

            Post["/schedulerun", true] = async(x, ct) => await ScheduleRun((string)Request.Form.key);
        }
 public void ApplyBackup(IStoreBackup backupToApply, RestoreStrategy strategy = RestoreStrategy.Overwrite, IKVLogger logger = null)
 {
     lock (GetLockObject())
     {
         foreach (var row in backupToApply)
         {
             this[row.Key] = new MemoryStorageRow(row);
         }
     }
 }
        public void ApplyBackup(IStoreBackup backupToApply, RestoreStrategy strategy = RestoreStrategy.Overwrite, IKVLogger logger = null)
        {
            var localLogger = logger ?? new NullLogger();

            if (_provider is IExportableStore)
            {
                (_provider as IExportableStore).ApplyBackup(backupToApply, strategy, localLogger);
            }
            else
            {
                foreach (var item in backupToApply)
                {
                    if (strategy == RestoreStrategy.Overwrite)
                    {
                        _Set(item, localLogger);
                    }

                    else if (strategy == RestoreStrategy.KeepExisting)
                    {
                        var value = _provider.Get(item.Key);
                        if (string.IsNullOrEmpty(value))
                        {
                            _Set(item, localLogger);
                        }
                    }
                    else if (strategy == RestoreStrategy.UseLatest)
                    {
                        DateTime?expiry = null;
                        try
                        {
                            expiry = _provider.ExpiresOn(item.Key);
                        }
                        catch (NotImplementedException)
                        {
                        }

                        if (expiry != null && item.Expiry == null)
                        {
                            _Set(item, localLogger);
                        }

                        if (expiry != null && item.Expiry != null && item.Expiry > expiry)
                        {
                            _Set(item, localLogger);
                        }
                    }
                }
            }
        }
Esempio n. 4
0
 public void ApplyBackup(IStoreBackup backupToApply, RestoreStrategy strategy = RestoreStrategy.Overwrite, IKVLogger logger = null)
 {
     _memoryBackingStore.ApplyBackup(backupToApply, strategy, logger);
 }