private void ApplyUserInputToTableAuditingModel(DatabaseAuditingPolicyModel model) { var orgAuditStateType = model.AuditState; model.AuditState = AuditStateType.Enabled; model.UseServerDefault = UseServerDefaultOptions.Disabled; if (StorageAccountName != null) { model.StorageAccountName = StorageAccountName; ModelAdapter.ClearStorageDetailsCache(); } if (MyInvocation.BoundParameters.ContainsKey(SecurityConstants.StorageKeyType)) { // the user enter a key type - we use it (and override the previously defined key type) model.StorageKeyType = (StorageKeyType == SecurityConstants.Primary) ? StorageKeyKind.Primary : StorageKeyKind.Secondary; } EventType = Util.ProcessAuditEvents(EventType); if (EventType != null) // the user provided Table auditing event types { model.EventType = EventType.Select(s => SecurityConstants.AuditEventsToAuditEventType[s]).ToArray(); } if (RetentionInDays != null) { model.RetentionInDays = RetentionInDays; } if (TableIdentifier == null) { if ((orgAuditStateType == AuditStateType.New) && (model.RetentionInDays > 0)) { // If retention days is greater than 0 and no audit table identifier is supplied , we throw exception giving the user hint on the recommended TableIdentifier we got from the CSM throw new Exception(string.Format(Properties.Resources.InvalidRetentionTypeSet, model.TableIdentifier)); } } else { model.TableIdentifier = TableIdentifier; } }
/// <summary> /// Updates the given model element with the cmdlet specific operation /// </summary> /// <param name="model">A model object</param> protected override DatabaseAuditingPolicyModel ApplyUserInputToModel(DatabaseAuditingPolicyModel model) { base.ApplyUserInputToModel(model); AuditStateType orgAuditStateType = model.AuditState; model.AuditState = AuditStateType.Enabled; model.UseServerDefault = UseServerDefaultOptions.Disabled; if (StorageAccountName != null) { model.StorageAccountName = StorageAccountName; ModelAdapter.ClearStorageDetailsCache(); } if (!string.IsNullOrEmpty(StorageKeyType)) // the user enter a key type - we use it (and running over the previously defined key type) { model.StorageKeyType = (StorageKeyType == SecurityConstants.Primary) ? StorageKeyKind.Primary : StorageKeyKind.Secondary; } EventType = Util.ProcessAuditEvents(EventType); if (EventType != null) // the user provided event types to audit { model.EventType = EventType.Select(s => SecurityConstants.AuditEventsToAuditEventType[s]).ToArray(); } if (RetentionInDays != null) { model.RetentionInDays = RetentionInDays; } if (TableIdentifier == null) { if ((orgAuditStateType == AuditStateType.New) && (model.RetentionInDays > 0)) { // If retention days is greater than 0 and no audit table identifier is supplied , we throw exception giving the user hint on the recommended TableIdentifier we got from the CSM throw new Exception(string.Format(Microsoft.Azure.Commands.Sql.Properties.Resources.InvalidRetentionTypeSet, model.TableIdentifier)); } } else { model.TableIdentifier = TableIdentifier; } return(model); }