/// <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));
 }
示例#2
0
        /// <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);
        }
示例#4
0
        /// <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);
        }