public static LoggingProperties ConvertLoggingProperties(TableAnalyticsLoggingSettings loggingSettings) { LoggingOperations loggingOperations = LoggingOperations.None; if (loggingSettings.Delete) { loggingOperations |= LoggingOperations.Delete; } if (loggingSettings.Read) { loggingOperations |= LoggingOperations.Read; } if (loggingSettings.Write) { loggingOperations |= LoggingOperations.Write; } return(new LoggingProperties() { Version = loggingSettings.Version, RetentionDays = loggingSettings.RetentionPolicy?.Days, LoggingOperations = loggingOperations, }); }
/// <summary> /// Update the Table service logging properties according to the input /// </summary> /// <param name="logging">Service properties</param> internal void UpdateTableServiceProperties(TableAnalyticsLoggingSettings logging) { if (Version != null) { logging.Version = Version.ToString(); } if (RetentionDays != null) { if (RetentionDays == -1) { //Disable logging retention policy logging.RetentionPolicy.Enabled = false; logging.RetentionPolicy.Days = null; } else if (RetentionDays < 1 || RetentionDays > 365) { throw new ArgumentException(string.Format(Resources.InvalidRetentionDay, RetentionDays)); } else { logging.RetentionPolicy.Enabled = true; logging.RetentionPolicy.Days = RetentionDays; } } if (LoggingOperations != null && LoggingOperations.Length > 0) { logging.Delete = false; logging.Read = false; logging.Write = false; for (int i = 0; i < LoggingOperations.Length; i++) { if (LoggingOperations[i] == StorageClient.LoggingOperations.None || LoggingOperations[i] == StorageClient.LoggingOperations.All) { if (LoggingOperations.Length > 1) { throw new ArgumentException(Resources.NoneAndAllOperationShouldBeAlone); } } switch (LoggingOperations[i]) { case StorageClient.LoggingOperations.Delete: logging.Delete = true; break; case StorageClient.LoggingOperations.Read: logging.Read = true; break; case StorageClient.LoggingOperations.Write: logging.Write = true; break; case StorageClient.LoggingOperations.All: logging.Delete = true; logging.Read = true; logging.Write = true; break; case StorageClient.LoggingOperations.None: break; default: throw new ArgumentException($"Unsupported Logging Operation {LoggingOperations[i]}"); } } } }