static void SerializeServiceProperties(XmlWriter writer, RequestServiceProperites results) { writer.WriteStartElement("StorageServiceProperties"); writer.WriteStartElement("Logging"); writer.WriteElementStringIfNotNull("Version", results.Properties.Logging.Version); // TODO: These values are hard-coded until we implement logging & metrics writer.WriteElementString("Delete", "false"); writer.WriteElementString("Read", "false"); writer.WriteElementString("Write", "false"); SerializeRetentionPolicy(writer); writer.WriteEndElement(); // Logging if (results.RequestVersion <= StorageServiceVersions.Version_2012_02_12) { // TODO: These values are hard-coded until we implement logging & metrics writer.WriteStartElement("Metrics"); writer.WriteElementStringIfNotNull("Version", results.Properties.HourMetrics.Version); writer.WriteElementString("Enabled", "false"); writer.WriteElementString("IncludeAPIs", "false"); SerializeRetentionPolicy(writer); writer.WriteEndElement(); // Metrics } else { // TODO: These values are hard-coded until we implement logging & metrics writer.WriteStartElement("HourMetrics"); writer.WriteElementStringIfNotNull("Version", results.Properties.HourMetrics.Version); writer.WriteElementString("Enabled", "false"); writer.WriteElementString("IncludeAPIs", "false"); SerializeRetentionPolicy(writer); writer.WriteEndElement(); // HourMetrics // TODO: These values are hard-coded until we implement logging & metrics writer.WriteStartElement("MinuteMetrics"); writer.WriteElementStringIfNotNull("Version", results.Properties.MinuteMetrics.Version); writer.WriteElementString("Enabled", "false"); writer.WriteElementString("IncludeAPIs", "false"); SerializeRetentionPolicy(writer); writer.WriteEndElement(); // MinuteMetrics writer.WriteStartElement("Cors"); foreach (var corsRule in results.Properties.Cors.CorsRules) { writer.WriteStartElement("CorsRule"); writer.WriteElementString("AllowedOrigins", String.Join(",", corsRule.AllowedOrigins)); writer.WriteElementString("AllowedMethods", corsRule.AllowedMethods.ToString()); writer.WriteElementString("MaxAgeInSeconds", corsRule.MaxAgeInSeconds.ToString()); writer.WriteElementString("ExposedHeaders", String.Join(",", corsRule.ExposedHeaders)); writer.WriteElementString("AllowedHeaders", String.Join(",", corsRule.AllowedHeaders)); writer.WriteEndElement(); // CorsRule } writer.WriteEndElement(); // Cors } writer.WriteElementStringIfNotNull("DefaultServiceVersion", results.Properties.DefaultServiceVersion); writer.WriteEndElement(); // StorageServiceProperties }