/// <summary> /// Create a website /// </summary> /// <param name="name"></param> /// <param name="connectionStringInfo"></param> /// <returns></returns> public WebSite CreateWebSite(string name = "", WebSiteUpdateConfigurationParameters.ConnectionStringInfo connectionStringInfo = null) { return(CreateWebSite(_webSpace, new WebSiteCreateParameters { Name = name }, connectionStringInfo)); }
/// <summary> /// Sets a connection string for a website. /// </summary> /// <param name="name">Name of the website.</param> /// <param name="key">Connection string key.</param> /// <param name="value">Value for the connection string.</param> /// <param name="connectionStringType">Type of connection string.</param> public void SetConnectionString(string name, string key, string value, DatabaseType connectionStringType) { Site website = GetWebsite(name); var update = WebsiteManagementClient.WebSites.GetConfiguration(website.WebSpace, website.Name).ToUpdate(); var csToUpdate = update.ConnectionStrings.FirstOrDefault(cs => cs.Name.Equals(key, StringComparison.OrdinalIgnoreCase)); if (csToUpdate == null) { csToUpdate = new WebSiteUpdateConfigurationParameters.ConnectionStringInfo { ConnectionString = value, Name = key, Type = connectionStringType.ToString() }; update.ConnectionStrings.Add(csToUpdate); } else { csToUpdate.ConnectionString = value; csToUpdate.Type = connectionStringType.ToString(); } WebsiteManagementClient.WebSites.UpdateConfiguration(website.WebSpace, website.Name, update); }
/// <summary> /// Create a website /// </summary> /// <param name="webSpaceName"></param> /// <param name="siteSettings"></param> /// <param name="connectionStringInfo"></param> /// <returns></returns> public WebSite CreateWebSite(string webSpaceName, WebSiteCreateParameters siteSettings, WebSiteUpdateConfigurationParameters.ConnectionStringInfo connectionStringInfo = null) { if (siteSettings == null) { throw new ArgumentNullException("siteSettings"); } siteSettings.Name = string.IsNullOrEmpty(siteSettings.Name) ? Dependencies.TestResourcesCollector.GetUniqueWebSiteName() : siteSettings.Name.ToLowerInvariant(); if (siteSettings.HostNames == null || siteSettings.HostNames.Count == 0) { siteSettings.HostNames = new [] { siteSettings.Name + Dependencies.Subscription.DefaultWebSitesDomainName }; } if (string.IsNullOrEmpty(siteSettings.WebSpaceName)) { siteSettings.WebSpaceName = webSpaceName; } TestEasyLog.Instance.Info(string.Format("Creating web site '{0}'", siteSettings.Name)); var createWebsiteResult = WebSiteManagementClient.WebSites.CreateAsync(webSpaceName, siteSettings, new CancellationToken()).Result; var newSite = createWebsiteResult.WebSite; Dependencies.TestResourcesCollector.Remember(AzureResourceType.WebSite, newSite.Name, newSite); if (connectionStringInfo != null) { var existingConfig = CreateWebSiteUpdateParameters(newSite.Name); var existingConnectionStrings = existingConfig.ConnectionStrings; if (existingConnectionStrings.All(cs => cs.Name != connectionStringInfo.Name)) { existingConnectionStrings.Add(connectionStringInfo); UpdateWebSiteConfig(webSpaceName, newSite.Name, existingConfig); } } return(newSite); }
/// <summary> /// Sets a connection string for a website. /// </summary> /// <param name="name">Name of the website.</param> /// <param name="key">Connection string key.</param> /// <param name="value">Value for the connection string.</param> /// <param name="connectionStringType">Type of connection string.</param> public void SetConnectionString(string name, string key, string value, DatabaseType connectionStringType) { Site website = GetWebsite(name); var update = WebsiteManagementClient.WebSites.GetConfiguration(website.WebSpace, website.Name).ToUpdate(); var csToUpdate = update.ConnectionStrings.FirstOrDefault(cs => cs.Name.Equals(key, StringComparison.OrdinalIgnoreCase)); if (csToUpdate == null) { csToUpdate = new WebSiteUpdateConfigurationParameters.ConnectionStringInfo { ConnectionString = value, Name = key, Type = connectionStringType.ToString() }; update.ConnectionStrings.Add(csToUpdate); } else { csToUpdate.ConnectionString = value; csToUpdate.Type = connectionStringType.ToString(); } WebsiteManagementClient.WebSites.UpdateConfiguration(website.WebSpace, website.Name, update); }