private void UpdateApplications(WebSite site, ServerManager serverManager, string siteName, string sitePath, ApplicationPool appPool)
{
var iisSites = serverManager.Sites;
var adminSite = iisSites[AzureRoleEnvironment.RoleWebsiteName()];
var testApplication = adminSite.Applications.FirstOrDefault(
app => app.Path.EndsWith("/test/" + siteName, StringComparison.OrdinalIgnoreCase));
var cdnApplication = adminSite.Applications.FirstOrDefault(
app => app.Path.EndsWith("/cdn/" + siteName, StringComparison.OrdinalIgnoreCase));
if (site.EnableTestChildApplication)
{
if (testApplication == null)
{
_logger.InfoFormat("Adding Test application for site '{0}'", siteName);
testApplication = adminSite.Applications.Add("/test/" + siteName, sitePath);
testApplication.ApplicationPoolName = appPool.Name;
}
}
else
{
if (testApplication != null)
{
_logger.InfoFormat("Removing Test application for site '{0}'", siteName);
adminSite.Applications.Remove(testApplication);
}
}
if (site.EnableCDNChildApplication)
{
if (cdnApplication == null)
{
_logger.InfoFormat("Adding CDN application for site '{0}'", siteName);
cdnApplication = adminSite.Applications.Add("/cdn/" + siteName, Path.Combine(sitePath, "cdn"));
cdnApplication.ApplicationPoolName = appPool.Name;
}
}
else
{
if (cdnApplication != null)
{
_logger.InfoFormat("Removing CDN application for site '{0}'", siteName);
adminSite.Applications.Remove(cdnApplication);
}
}
}