/// <summary>
        /// Generates XML representing the given static website properties.
        /// </summary>
        /// <param name="staticWebsiteProperties">The static website properties.</param>
        /// <returns>An XML element corresponding to the input properties.</returns>
        private static XElement GenerateStaticWebsitePropertiesXml(StaticWebsiteProperties staticWebsiteProperties)
        {
            CommonUtility.AssertNotNull("staticWebsiteProperties", staticWebsiteProperties);

            bool     enabled = staticWebsiteProperties.Enabled;
            XElement xml     = new XElement(StaticWebsiteName, new XElement(StaticWebsiteEnabledName, enabled));

            if (!enabled)
            {
                return(xml);
            }

            if (!string.IsNullOrWhiteSpace(staticWebsiteProperties.IndexDocument))
            {
                xml.Add(new XElement(StaticWebsiteIndexDocumentName, staticWebsiteProperties.IndexDocument));
            }

            if (!string.IsNullOrWhiteSpace(staticWebsiteProperties.ErrorDocument404Path))
            {
                xml.Add(new XElement(StaticWebsiteErrorDocument404PathName, staticWebsiteProperties.ErrorDocument404Path));
            }

            return(xml);
        }
 /// <summary>
 /// Initializes a new instance of the ServiceProperties class.
 /// </summary>
 public ServiceProperties(LoggingProperties logging, MetricsProperties hourMetrics, MetricsProperties minuteMetrics, CorsProperties cors, DeleteRetentionPolicy deleteRetentionPolicy, StaticWebsiteProperties staticWebsite = null)
 {
     this.Logging               = logging;
     this.HourMetrics           = hourMetrics;
     this.MinuteMetrics         = minuteMetrics;
     this.Cors                  = cors;
     this.DeleteRetentionPolicy = deleteRetentionPolicy;
     this.StaticWebsite         = staticWebsite;
 }