AzureSiteReplicator.Data.ConfigRepository.RemoveSite C# (CSharp) Method

RemoveSite() public method

public RemoveSite ( string siteName ) : void
siteName string
return void
        public void RemoveSite(string siteName)
        {
            HashSet<Site> sites = _sites;

            Site siteToRemove = sites.FirstOrDefault((m) =>
            {
                return string.Equals(siteName, m.Name, StringComparison.OrdinalIgnoreCase);
            });

            if (siteToRemove != null)
            {
                siteToRemove.Delete();
                sites = new HashSet<Site>(sites);
                sites.Remove(siteToRemove);
            }

            _sites = sites;
        }

Usage Example

        public void ConfigRepositoryRemoveSiteTest()
        {
            FileHelper.FileSystem = new MockFileSystem(new Dictionary<string, MockFileData>()
            {
                {
                    @"c:\site1.publishsettings",
                    new MockFileData(string.Format(ProfileTemplate, "site1"))
                },
                {
                    @"c:\site2.foo.publishsettings",
                    new MockFileData(string.Format(ProfileTemplate, "site2"))
                },
                { @"c:\foo.txt", new MockFileData("bar")},
                { @"c:\site1\", new MockDirectoryData() }
            });

            IConfigRepository repository = new ConfigRepository();
            repository.RemoveSite("site1");
            repository.RemoveSite("site2");

            FileBase fileBase = FileHelper.FileSystem.File;
            DirectoryBase dirBase = FileHelper.FileSystem.Directory;

            Assert.IsFalse(fileBase.Exists(@"c:\site1.publishSettings"), "site1 publishSettings still exists");
            Assert.IsFalse(dirBase.Exists(@"c:\site1"), "site1 folder still exists");
            Assert.IsFalse(fileBase.Exists(@"c:\site2.foo.publishsettings"), "sit2 publishSettings still exists");
        }