Exemple #1
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);
            SiteConfig configuration = WebsiteChannel.GetSiteConfig(
                subscriptionId, website.WebSpace, website.Name);

            var index = configuration.ConnectionStrings.FindIndex(cs => cs.Name.Equals(key, StringComparison.OrdinalIgnoreCase));

            if (index == -1)
            {
                configuration.ConnectionStrings.Add(new ConnStringInfo()
                {
                    Name             = key,
                    ConnectionString = value,
                    Type             = connectionStringType
                });
            }
            else
            {
                configuration.ConnectionStrings[index].ConnectionString = value;
                configuration.ConnectionStrings[index].Type             = connectionStringType;
            }

            WebsiteChannel.UpdateSiteConfig(subscriptionId, website.WebSpace, website.Name, configuration);
        }
Exemple #2
0
        private void ChangeWebsiteState(string name, string webspace, WebsiteState state)
        {
            Site siteUpdate = new Site {
                Name = name, State = state.ToString()
            };

            WebsiteChannel.UpdateSite(subscriptionId, webspace, name, siteUpdate);
        }
Exemple #3
0
        /// <summary>
        /// Gets the website configuration.
        /// </summary>
        /// <param name="name">The website name</param>
        /// <returns>The website configuration object</returns>
        public SiteWithConfig GetWebsiteConfiguration(string name)
        {
            Site                website             = GetWebsite(name);
            SiteConfig          configuration       = WebsiteChannel.GetSiteConfig(subscriptionId, website.WebSpace, website.Name);
            DiagnosticsSettings diagnosticsSettings = GetApplicationDiagnosticsSettings(website.Name);
            SiteWithConfig      siteWithConfig      = new SiteWithConfig(website, configuration, diagnosticsSettings);

            return(siteWithConfig);
        }
Exemple #4
0
        /// <summary>
        /// Gets a website instance.
        /// </summary>
        /// <param name="name">The website name</param>
        /// <returns>The website instance</returns>
        public Site GetWebsite(string name)
        {
            name = GetWebsiteName(name);
            Site website = WebsiteChannel.GetSiteWithCache(subscriptionId, name, null);

            if (website == null)
            {
                throw new Exception(string.Format(Resources.InvalidWebsite, name));
            }

            return(website);
        }
Exemple #5
0
        private Repository TryGetRepository(string websiteName)
        {
            Site site = WebsiteChannel.GetSiteWithCache(
                subscriptionId,
                websiteName,
                "repositoryuri,publishingpassword,publishingusername");

            if (site != null)
            {
                return(new Repository(site));
            }

            return(null);
        }
Exemple #6
0
        private Repository GetRepository(string websiteName)
        {
            Site site = WebsiteChannel.GetSiteWithCache(
                subscriptionId,
                websiteName,
                "repositoryuri,publishingpassword,publishingusername");

            if (site != null)
            {
                return(new Repository(site));
            }

            throw new Exception(Resources.RepositoryNotSetup);
        }
Exemple #7
0
        /// <summary>
        /// Adds an AppSetting of a website.
        /// </summary>
        /// <param name="name">The website name</param>
        /// <param name="key">The app setting name</param>
        /// <param name="value">The app setting value</param>
        public void AddAppSetting(string name, string key, string value)
        {
            Site       website       = GetWebsite(name);
            SiteConfig configuration = WebsiteChannel.GetSiteConfig(
                SubscriptionId,
                website.WebSpace,
                website.Name);

            configuration.AppSettings.Add(new NameValuePair()
            {
                Name = key, Value = value
            });
            WebsiteChannel.UpdateSiteConfig(SubscriptionId, website.WebSpace, website.Name, configuration);
        }
Exemple #8
0
        /// <summary>
        /// Gets the index of an application setting. Returns -1 if not found.
        /// </summary>
        /// <param name="name">The website name</param>
        /// <param name="key">the applicationsetting key</param>
        /// <returns>The application setting index</returns>
        private int GetAppSettingIndex(string name, string key)
        {
            Site       website       = GetWebsite(name);
            SiteConfig configuration = WebsiteChannel.GetSiteConfig(
                subscriptionId,
                website.WebSpace,
                website.Name);

            for (int i = 0; i < configuration.AppSettings.Count; i++)
            {
                if (configuration.AppSettings[i].Name.Equals(key, StringComparison.OrdinalIgnoreCase))
                {
                    return(i);
                }
            }

            return(-1);
        }
Exemple #9
0
        /// <summary>
        /// Lists available website locations.
        /// </summary>
        /// <returns>List of location names</returns>
        public List <string> ListAvailableLocations()
        {
            List <string> locations           = new List <string>();
            WebSpaces     webspaces           = WebsiteChannel.GetWebSpaces(subscriptionId);
            List <string> webspacesGeoRegions = new List <string>();

            webspaces.ForEach(w => webspacesGeoRegions.Add(w.GeoRegion));
            GeoRegions regions = new GeoRegions();

            using (HttpClient client = CreateWebsitesHttpClient())
            {
                regions = client.GetXml <GeoRegions>(UriElements.WebSpacesGeoRegionsRoot, Logger);
            }

            regions.ForEach(r => locations.Add(r.Name));
            locations = locations.Union(webspacesGeoRegions).ToList();

            return(locations);
        }
Exemple #10
0
        private void SetSiteDiagnosticsSettings(
            string name,
            bool webServerLogging,
            bool detailedErrorMessages,
            bool failedRequestTracing,
            bool setFlag)
        {
            Site       website       = GetWebsite(name);
            SiteConfig configuration = WebsiteChannel.GetSiteConfig(
                subscriptionId,
                website.WebSpace,
                website.Name);

            configuration.HttpLoggingEnabled          = webServerLogging ? setFlag : configuration.HttpLoggingEnabled;
            configuration.DetailedErrorLoggingEnabled = detailedErrorMessages ? setFlag :
                                                        configuration.DetailedErrorLoggingEnabled;
            configuration.RequestTracingEnabled = failedRequestTracing ? setFlag : configuration.RequestTracingEnabled;

            WebsiteChannel.UpdateSiteConfig(subscriptionId, website.WebSpace, website.Name, configuration);
        }
Exemple #11
0
        /// <summary>
        /// Sets an AppSetting of a website.
        /// </summary>
        /// <param name="name">The website name</param>
        /// <param name="key">The app setting name</param>
        /// <param name="value">The app setting value</param>
        public void SetAppSetting(string name, string key, string value)
        {
            Site       website       = GetWebsite(name);
            SiteConfig configuration = WebsiteChannel.GetSiteConfig(
                subscriptionId,
                website.WebSpace,
                website.Name);

            int index = GetAppSettingIndex(name, key);

            if (index != -1)
            {
                configuration.AppSettings[index].Value = value;
            }
            else
            {
                configuration.AppSettings.Add(new NameValuePair()
                {
                    Name = key, Value = value
                });
            }

            WebsiteChannel.UpdateSiteConfig(subscriptionId, website.WebSpace, website.Name, configuration);
        }