public override void ExecuteCmdlet() { PSSecuritySetting setting; switch (ParameterSetName) { case ParameterSetNames.DataExportSettingsScope: break; case ParameterSetNames.InputObject: if (InputObject.GetType().Name == nameof(PSSecurityDataExportSetting)) { SettingKind = "DataExportSettings"; Enabled = !this.IsParameterBound(c => c.Enabled) ? ((PSSecurityDataExportSetting)InputObject).Enabled : Enabled; } SettingName = InputObject.Name; break; default: throw new PSInvalidOperationException(); } if (SettingKind == "DataExportSettings") { setting = new PSSecurityDataExportSetting() { Enabled = Enabled, Name = SettingName }; } else { throw new PSInvalidOperationException("Invalid setting kind"); } if (ShouldProcess(SettingName, VerbsCommon.Set)) { var updatedSetting = SecurityCenterClient.Settings.UpdateWithHttpMessagesAsync(SettingName, setting.ConvertToCSType()).GetAwaiter().GetResult().Body; WriteObject(updatedSetting.ConvertToPSType(), enumerateCollection: false); } }
public override void ExecuteCmdlet() { PSSecuritySetting setting; switch (ParameterSetName) { case ParameterSetNames.SettingsScope: break; case ParameterSetNames.InputObject: if (InputObject.GetType().Name == nameof(PSSecurityDataExportSetting)) { SettingKind = DataExportSettingsSettingKind; Enabled = !this.IsParameterBound(c => c.Enabled) ? ((PSSecurityDataExportSetting)InputObject).Enabled : Enabled; } if (InputObject.GetType().Name == nameof(PSSecurityAlertSyncSettings)) { SettingKind = AlertSyncSettingsSettingKind; Enabled = !this.IsParameterBound(c => c.Enabled) ? ((PSSecurityAlertSyncSettings)InputObject).Enabled : Enabled; } SettingName = InputObject.Name; break; default: throw new PSInvalidOperationException(); } if ((SettingName == SentinelSettingName && SettingKind != AlertSyncSettingsSettingKind) || ((SettingName == McasSettingName || SettingName == WdatpSettingName) && SettingKind != DataExportSettingsSettingKind)) { throw new PSInvalidOperationException("Setting kind doesn't match the setting name"); } switch (SettingKind) { case DataExportSettingsSettingKind: { setting = new PSSecurityDataExportSetting() { Enabled = Enabled, Name = SettingName }; break; }; case AlertSyncSettingsSettingKind: { setting = new PSSecurityAlertSyncSettings() { Enabled = Enabled, Name = SettingName }; break; }; default: throw new PSInvalidOperationException("Invalid setting kind"); } if (ShouldProcess(SettingName, VerbsCommon.Set)) { var updatedSetting = SecurityCenterClient.Settings.UpdateWithHttpMessagesAsync(SettingName, setting.ConvertToCSType()).GetAwaiter().GetResult().Body; WriteObject(updatedSetting.ConvertToPSType(), enumerateCollection: false); } }