Bari.Core.Commands.Clean.CacheCleaner.Clean C# (CSharp) Method

Clean() public method

Performs the additional cleaning step
public Clean ( ICleanParameters parameters ) : void
parameters ICleanParameters
return void
        public void Clean(ICleanParameters parameters)
        {
            if (parameters.KeepReferences)
            {
                var persistentReferenceBuilders = builderEnumerator.GetAllPersistentBuilders().ToList();
                var persistentBuilderPrefixes = persistentReferenceBuilders.Select(b => b.FullName + "_").ToList();

                foreach (var directory in cacheDir.Value.ChildDirectories)
                {
                    foreach (var prefix in persistentBuilderPrefixes)
                    {
                        if (!directory.StartsWith(prefix))
                        {
                            DeleteDirectory(cacheDir.Value.GetChildDirectory(directory), parameters);
                            break;
                        }
                        else
                        {
                            log.InfoFormat("Keeping {0} because keep-references option is active", directory);
                        }
                    }
                }

                if (!cacheDir.Value.ChildDirectories.Any())
                    DeleteDirectory(cacheDir.Value, parameters);
            }
            else
            {
                DeleteDirectory(cacheDir.Value, parameters);
            }
        }

Usage Example

Esempio n. 1
0
        public void DeletesCacheDirectory()
        {
            var be = new Mock<IBuilderEnumerator>();
            be.Setup(b => b.GetAllPersistentBuilders()).Returns(new Type[0]);

            var parameters = new Mock<ICleanParameters>();
            var predicates = new SoftCleanPredicates();
            var cdir = new TestFileSystemDirectory("cache");
            var cleaner = new CacheCleaner(new Lazy<IFileSystemDirectory>(() => cdir), be.Object, () => predicates);

            cdir.IsDeleted.Should().BeFalse();
            cleaner.Clean(parameters.Object);
            cdir.IsDeleted.Should().BeTrue();
        }
All Usage Examples Of Bari.Core.Commands.Clean.CacheCleaner::Clean