Пример #1
0
        public void ListFilesShouldContainFileInfo()
        {
            var files = _appDataFolder.ListFiles("alpha").Select(x => x.Name).ToList();

            Assert.Equal(2, files.Count());
            Assert.Contains("beta.txt", files);
            Assert.Contains("gamma.txt", files);
        }
        public void ListFilesShouldContainSubPathAndFileName()
        {
            var files = _appDataFolder.ListFiles("alpha");

            Assert.That(files.Count(), Is.EqualTo(2));
            Assert.That(files, Has.Some.EqualTo("alpha/beta.txt"));
            Assert.That(files, Has.Some.EqualTo("alpha/gamma.txt"));
        }
Пример #3
0
        public void ListFilesShouldContainSubPathAndFileName()
        {
            var files = _appDataFolder.ListFiles("alpha");

            Assert.Equal(files.Count(), 2);
            Assert.Contains(files, t => t.Equals("alpha/beta.txt"));
            Assert.Contains(files, t => t.Equals("alpha/gamma.txt"));
        }
 public void RemoveAll()
 {
     foreach (var filename in _appDataFolder.ListFiles(_root))
     {
         if (_appDataFolder.FileExists(filename))
         {
             _appDataFolder.DeleteFile(filename);
         }
     }
 }
Пример #5
0
        private int GetFirstStepIndex(string executionId)
        {
            var stepFiles = new List <string>(_appDataFolder.ListFiles(Path.Combine(_recipeQueueFolder, executionId)));

            if (stepFiles.Count == 0)
            {
                return(-1);
            }
            var currentSteps = stepFiles.Select(stepFile => Int32.Parse(stepFile.Substring(stepFile.LastIndexOf('/') + 1))).ToList();

            currentSteps.Sort();
            return(currentSteps[0]);
        }
Пример #6
0
        IEnumerable <ShellSettings> IShellSettingsManager.LoadSettings()
        {
            var filePaths = _appDataFolder
                            .ListDirectories("Sites")
                            .SelectMany(path => _appDataFolder.ListFiles(path))
                            .Where(path => {
                var filePathName = Path.GetFileName(path);

                return(_settingFileNameExtensions.Any(p =>
                                                      string.Equals(filePathName, string.Format(_settingsFileNameFormat, p), StringComparison.OrdinalIgnoreCase)
                                                      ));
            });

            List <ShellSettings> shellSettings = new List <ShellSettings>();

            foreach (var filePath in filePaths)
            {
                IConfigurationSourceContainer configurationContainer = null;

                var extension = Path.GetExtension(filePath);

                switch (extension)
                {
                case ".json":
                    configurationContainer = new Microsoft.Framework.ConfigurationModel.Configuration()
                                             .AddJsonFile(filePath);
                    break;

                case ".xml":
                    configurationContainer = new Microsoft.Framework.ConfigurationModel.Configuration()
                                             .AddXmlFile(filePath);
                    break;

                case ".ini":
                    configurationContainer = new Microsoft.Framework.ConfigurationModel.Configuration()
                                             .AddIniFile(filePath);
                    break;

                case ".txt":
                    configurationContainer = new Microsoft.Framework.ConfigurationModel.Configuration()
                                             .Add(new DefaultFileConfigurationSource(_appDataFolder, filePath));
                    break;
                }

                if (configurationContainer != null)
                {
                    var shellSetting = new ShellSettings {
                        Name             = configurationContainer.Get <string>("Name"),
                        RequestUrlPrefix = configurationContainer.Get <string>("RequestUrlPrefix")
                    };

                    TenantState state;
                    shellSetting.State = Enum.TryParse(configurationContainer.Get <string>("State"), true, out state) ? state : TenantState.Uninitialized;

                    shellSettings.Add(shellSetting);
                }
            }

            return(shellSettings);
        }
Пример #7
0
        private IEnumerable <ShellSettings> LoadSettingsInternal()
        {
            var filePaths = _appDataFolder
                            .ListDirectories("Sites")
                            .SelectMany(path => _appDataFolder.ListFiles(path))
                            .Where(path => String.Equals(Path.GetFileName(path), SettingsFileName, StringComparison.OrdinalIgnoreCase));

            foreach (var filePath in filePaths)
            {
                yield return(ShellSettingsSerializer.ParseSettings(_appDataFolder.ReadFile(filePath)));
            }
        }
Пример #8
0
 public void RemoveAll()
 {
     foreach (var folder in new[] { _metadata, _content })
     {
         foreach (var filename in _appDataFolder.ListFiles(folder))
         {
             var hash = Path.GetFileName(filename);
             lock (String.Intern(hash)) {
                 try {
                     if (_appDataFolder.FileExists(filename))
                     {
                         _appDataFolder.DeleteFile(filename);
                     }
                 }
                 catch (Exception e) {
                     Logger.Warning(e, "An error occured while deleting the file: {0}", filename);
                 }
             }
         }
     }
 }
Пример #9
0
        public void Sweep()
        {
            foreach (var filename in _appDataFolder.ListFiles(_root).ToArray())
            {
                var validUntilUtc = _cacheManager.Get(filename, context => {
                    _signals.When(filename);

                    using (var stream = _appDataFolder.OpenFile(filename)) {
                        var cacheItem = FileSystemOutputCacheStorageProvider.Deserialize(stream);
                        return(cacheItem.ValidUntilUtc);
                    }
                });

                if (_clock.UtcNow > validUntilUtc)
                {
                    _appDataFolder.DeleteFile(filename);
                    _signals.Trigger(filename);
                }
            }
        }
 public void Sweep()
 {
     Logger.Debug("Beginning sweep for TrailLogTrimmingBackgroundTask.");
     try {
         // This task should look for audit trail log files older than a timespan
         // and delete them if any are found.
         if (GetIsTimeToTrim())
         {
             var logFilePath       = LaserAuditTrailHelper.GetLogsFilePath();
             var logFileExtension  = LaserAuditTrailHelper.GetAppenderFileExtension();
             var fileNameBeginning = Path.Combine(
                 logFilePath,
                 LaserAuditTrailHelper.GetAppenderFileName(
                     GetSiteSettings().SiteName))
                                     .Replace(Path.DirectorySeparatorChar, '/');
             var myLogs = _appDataFolder
                          .ListFiles(logFilePath)
                          .Where(fn => fn.StartsWith(fileNameBeginning));
             // get the logs older than the specific timespan and delete them
             // Retention timespan: anything older will be deleted
             var retentionPeriod = TimeSpan.FromDays(GetAuditTrailSettings().RetentionPeriod);
             var dateThreshold   = (_clock.UtcNow.EndOfDay() - retentionPeriod);
             foreach (var fileName in myLogs)
             {
                 var lastWriteTime = _appDataFolder.GetFileLastWriteTimeUtc(fileName);
                 if (lastWriteTime <= dateThreshold)
                 {
                     // file is older than the limit for retention. Delete it.
                     _appDataFolder.DeleteFile(fileName);
                 }
             }
         }
     } catch (Exception ex) {
         Logger.Error(ex, "Error during sweep for TrailLogTrimmingBackgroundTask.");
     } finally {
         Logger.Debug("Ending sweep for TrailLogTrimmingBackgroundTask.");
     }
 }
        public void Sweep()
        {
            foreach (var filename in _appDataFolder.ListFiles(_metadata).ToArray())
            {
                var hash = Path.GetFileName(filename);

                var validUntilUtc = _cacheManager.Get(hash, context => {
                    _signals.When(hash);

                    using (var stream = _appDataFolder.OpenFile(filename)) {
                        var cacheItem = FileSystemOutputCacheStorageProvider.DeserializeMetadata(stream);
                        return(cacheItem.ValidUntilUtc);
                    }
                });

                if (_clock.UtcNow > validUntilUtc)
                {
                    _appDataFolder.DeleteFile(_appDataFolder.Combine(_metadata, hash));
                    _appDataFolder.DeleteFile(_appDataFolder.Combine(_content, hash));
                    _signals.Trigger(filename);
                }
            }
        }
Пример #12
0
        public void LockShouldBeGrantedWhenDoesNotExist()
        {
            ILockFile lockFile = null;
            var       granted  = _lockFileManager.TryAcquireLock("foo.txt.lock", ref lockFile);

            Assert.True(granted);
            Assert.NotNull(lockFile);
            Assert.True(_lockFileManager.IsLocked("foo.txt.lock"));
            Assert.Equal(_appDataFolder.ListFiles("").Count(), 1);
        }
        public void LockShouldBeGrantedWhenDoesNotExist()
        {
            ILockFile lockFile = null;
            var       granted  = _lockFileManager.TryAcquireLock("foo.txt.lock", ref lockFile);

            Assert.That(granted, Is.True);
            Assert.That(lockFile, Is.Not.Null);
            Assert.That(_lockFileManager.IsLocked("foo.txt.lock"), Is.True);
            Assert.That(_appDataFolder.ListFiles("").Count(), Is.EqualTo(1));
        }
Пример #14
0
 public void ShouldDoNothingWhenNoUrlsAreSpecified()
 {
     _warmupUpdater.EnsureGenerate();
     Assert.That(_appDataFolder.ListFiles(WarmupFolder).Count(), Is.EqualTo(0));
 }