private void UpdateUIwithUserAttributes() { //remove "sip:" prefix if the string isnt empty SipAddressTextBox.Text = String.IsNullOrEmpty(SipAddress) ? SipAddress : SipAddress.Remove(0, 4); RegistrarPoolTextBlock.Text = RegistrarPool; //remove "tel:" prefix if the string isnt empty LineURITextBox.Text = String.IsNullOrEmpty(LineURI) ? LineURI : LineURI.Remove(0, 4); EnterpriseVoiceEnabledCheckBox.IsChecked = EnterpriseVoiceEnabled; HostedVoicemailCheckBox.IsChecked = HostedVoicemail; if (UserPolicies != null) { //select effective policies for current user in the comboboxes ConferencingPolicyComboBox.SelectedValue = UserPolicies["ConferencingPolicy"]; VoicePolicyComboBox.SelectedValue = UserPolicies["VoicePolicy"]; ExternalAccessPolicyComboBox.SelectedValue = UserPolicies["ExternalAccessPolicy"]; HostedVoicemailPolicyComboBox.SelectedValue = UserPolicies["HostedVoicemailPolicy"]; MobilityPolicyComboBox.SelectedValue = UserPolicies["MobilityPolicy"]; } //select first value in comboboxes if the user policies are empty else { ConferencingPolicyComboBox.SelectedIndex = 0; VoicePolicyComboBox.SelectedIndex = 0; ExternalAccessPolicyComboBox.SelectedIndex = 0; HostedVoicemailPolicyComboBox.SelectedIndex = 0; MobilityPolicyComboBox.SelectedIndex = 0; } }
private void UpdateUserButton_Click(object sender, RoutedEventArgs e) { bool IsSipAddressChanged = false, // IsRegistrarPoolChanged = false, IsLineURIChanged = false, IsEnterpriseVoiceEnabledChanged = false, IsHostedVoicemailChanged = false, IsConferencingPolicyChanged = false, IsVoicePolicyChanged = false, IsExternalAccessPolicyChanged = false, IsHostedVoicemailPolicyChanged = false, IsMobilityPolicyChanged = false; string ChangedAttr = ""; //check which attributes have been changed if (SipAddressTextBox.Text != (String.IsNullOrEmpty(SipAddress) ? SipAddress : SipAddress.Remove(0, 4))) { ChangedAttr += "\nSip address from " + SipAddress + " to sip:" + SipAddressTextBox.Text + "\n"; IsSipAddressChanged = true; } //if (RegistrarPoolTextBlock.Text == RegistrarPool); if (LineURITextBox.Text != (String.IsNullOrEmpty(LineURI) ? LineURI : LineURI.Remove(0, 4))) { ChangedAttr += "\nLine URI from " + LineURI + " to tel:" + LineURITextBox.Text + "\n"; IsLineURIChanged = true; } if (EnterpriseVoiceEnabledCheckBox.IsChecked != EnterpriseVoiceEnabled) { ChangedAttr += "\nEV Enabled from " + EnterpriseVoiceEnabled.ToString() + " to " + EnterpriseVoiceEnabledCheckBox.IsChecked.ToString() + "\n"; IsEnterpriseVoiceEnabledChanged = true; } if (HostedVoicemailCheckBox.IsChecked != HostedVoicemail) { ChangedAttr += "\nHosted VM enabled from " + HostedVoicemail.ToString() + " to " + HostedVoicemailCheckBox.IsChecked.ToString() + "\n"; IsHostedVoicemailChanged = true; } //check conf pol if (ConferencingPolicyComboBox.SelectedValue != UserPolicies["ConferencingPolicy"]) { ChangedAttr += "\nConf policy from " + UserPolicies["ConferencingPolicy"] + " to " + ConferencingPolicyComboBox.SelectedValue + "\n"; IsConferencingPolicyChanged = true; } //voice pol if (VoicePolicyComboBox.SelectedValue != UserPolicies["VoicePolicy"]) { ChangedAttr += "\nVoice policy from " + UserPolicies["VoicePolicy"] + " to " + VoicePolicyComboBox.SelectedValue + "\n"; IsVoicePolicyChanged = true; } //ExternalAccess if (ExternalAccessPolicyComboBox.SelectedValue != UserPolicies["ExternalAccessPolicy"]) { ChangedAttr += "\nExternal Access policy from " + UserPolicies["ExternalAccessPolicy"] + " to " + ExternalAccessPolicyComboBox.SelectedValue + "\n"; IsExternalAccessPolicyChanged = true; } //HostedVM if (HostedVoicemailPolicyComboBox.SelectedValue != UserPolicies["HostedVoicemailPolicy"]) { ChangedAttr += "\nHosted VM policy from " + UserPolicies["HostedVoicemailPolicy"] + " to " + HostedVoicemailPolicyComboBox.SelectedValue + "\n"; IsHostedVoicemailPolicyChanged = true; } //mobility pol if (MobilityPolicyComboBox.SelectedValue != UserPolicies["MobilityPolicy"]) { ChangedAttr += "\nMobility policy from " + UserPolicies["MobilityPolicy"] + " to " + MobilityPolicyComboBox.SelectedValue + "\n"; IsMobilityPolicyChanged = true; } //start dialog if any of attributes were changed if (IsSipAddressChanged || IsLineURIChanged || IsEnterpriseVoiceEnabledChanged || IsHostedVoicemailChanged || IsConferencingPolicyChanged || IsVoicePolicyChanged || IsExternalAccessPolicyChanged || IsHostedVoicemailPolicyChanged || IsMobilityPolicyChanged) { //if confirmed, run set-csuser and\ or grant policies if (MessageBox.Show("Do you really want to change following attributes for the " + SipAddress + " user? (if Global or Site: policies are chosen, the user " + "will be granted with automatic policy)\n" + ChangedAttr, "Confirm", MessageBoxButton.YesNo, MessageBoxImage.Information, MessageBoxResult.No) == MessageBoxResult.Yes) { if (IsSipAddressChanged) { Collection <PSObject> result = new Collection <PSObject>(); result = PSExecute("Set-CsUser -Identity '" + Identity + "'" + " -SipAddress 'sip:" + SipAddressTextBox.Text + "'"); if (result != null) { AppendMainText("\nsip address changed\n"); } else { AppendMainText("\nThe error occured, please find the error details above, try again\n"); } } if (IsLineURIChanged) { string NewLineURI; //if lineuri string is empty, set argument as $null if (String.IsNullOrEmpty(LineURITextBox.Text)) { NewLineURI = "$null"; } else { NewLineURI = "'tel:" + LineURITextBox.Text + "'"; } Collection <PSObject> result = new Collection <PSObject>(); result = PSExecute("Set-CsUser -Identity '" + Identity + "'" + "-LineURI " + NewLineURI); if (result != null) { AppendMainText("\nLineURI changed\n"); } else { AppendMainText("\nThe error occured, please find the error details above, try again\n"); } } if (IsEnterpriseVoiceEnabledChanged) { Collection <PSObject> result = new Collection <PSObject>(); result = PSExecute("Set-CsUser -Identity '" + Identity + "'" + " -EnterpriseVoiceEnabled $" + (!EnterpriseVoiceEnabled).ToString()); if (result != null) { AppendMainText("\nEV changed\n"); } else { AppendMainText("\nThe error occured, please find the error details above, try again\n"); } } if (IsHostedVoicemailChanged) { Collection <PSObject> result = new Collection <PSObject>(); result = PSExecute("Set-CsUser -Identity '" + Identity + "'" + " -HostedVoicemail $" + (!HostedVoicemail).ToString()); if (result != null) { AppendMainText("\nHosted VM enabled changed\n"); } else { AppendMainText("\nThe error occured, please find the error details above, try again\n"); } } if (IsConferencingPolicyChanged) { Collection <PSObject> result = new Collection <PSObject>(); //for Global and Site policies use $null for automatical assigment if (ConferencingPolicyComboBox.SelectedValue.ToString() != "Global" && !(ConferencingPolicyComboBox.SelectedValue.ToString().StartsWith("Site:"))) { result = PSExecute("Grant-CsConferencingPolicy -Identity '" + Identity + "'" + " -PolicyName '" + ConferencingPolicyComboBox.SelectedValue + "'"); } else { result = PSExecute("Grant-CsConferencingPolicy -Identity '" + Identity + "'" + " -PolicyName $null"); } if (result != null) { AppendMainText("\nNew Conferencing Policy granted\n"); } else { AppendMainText("\nThe error occured, please find the error details above, try again\n"); } } if (IsVoicePolicyChanged) { Collection <PSObject> result = new Collection <PSObject>(); //for Global and Site policies use $null for automatical assigment if (VoicePolicyComboBox.SelectedValue.ToString() != "Global" && !(VoicePolicyComboBox.SelectedValue.ToString().StartsWith("Site:"))) { result = PSExecute("Grant-CsVoicePolicy -Identity '" + Identity + "'" + " -PolicyName '" + VoicePolicyComboBox.SelectedValue + "'"); } else { result = PSExecute("Grant-CsVoicePolicy -Identity '" + Identity + "'" + " -PolicyName $null"); } if (result != null) { AppendMainText("\nNew Voice Policy granted\n"); } else { AppendMainText("\nThe error occured, please find the error details above, try again\n"); } } if (IsExternalAccessPolicyChanged) { Collection <PSObject> result = new Collection <PSObject>(); //for Global and Site policies use $null for automatical assigment if (ExternalAccessPolicyComboBox.SelectedValue.ToString() != "Global" && !(ExternalAccessPolicyComboBox.SelectedValue.ToString().StartsWith("Site:"))) { result = PSExecute("Grant-CsExternalAccessPolicy -Identity '" + Identity + "'" + " -PolicyName '" + ExternalAccessPolicyComboBox.SelectedValue + "'"); } else { result = PSExecute("Grant-CsExternalAccessPolicy -Identity '" + Identity + "'" + " -PolicyName $null"); } if (result != null) { AppendMainText("\nNew External Access Policy granted\n"); } else { AppendMainText("\nThe error occured, please find the error details above, try again\n"); } } if (IsHostedVoicemailPolicyChanged) { Collection <PSObject> result = new Collection <PSObject>(); //for Global and Site policies use $null for automatical assigment if (HostedVoicemailPolicyComboBox.SelectedValue.ToString() != "Global" && !(HostedVoicemailPolicyComboBox.SelectedValue.ToString().StartsWith("Site:"))) { result = PSExecute("Grant-CsHostedVoicemailPolicy -Identity '" + Identity + "'" + " -PolicyName '" + HostedVoicemailPolicyComboBox.SelectedValue + "'"); } else { result = PSExecute("Grant-CsHostedVoicemailPolicy -Identity '" + Identity + "'" + " -PolicyName $null"); } if (result != null) { AppendMainText("\nNew Hosted Voicemail Policy granted\n"); } else { AppendMainText("\nThe error occured, please find the error details above, try again\n"); } } if (IsMobilityPolicyChanged) { Collection <PSObject> result = new Collection <PSObject>(); //for Global and Site policies use $null for automatical assigment if (MobilityPolicyComboBox.SelectedValue.ToString() != "Global" && !(MobilityPolicyComboBox.SelectedValue.ToString().StartsWith("Site:"))) { result = PSExecute("Grant-CsMobilityPolicy -Identity '" + Identity + "'" + " -PolicyName '" + MobilityPolicyComboBox.SelectedValue + "'"); } else { result = PSExecute("Grant-CsMobilityPolicy -Identity '" + Identity + "'" + " -PolicyName $null"); } if (result != null) { AppendMainText("\nNew Mobility Policy granted\n"); } else { AppendMainText("\nThe error occured, please find the error details above, try again\n"); } } } //disable Update Button until next user will be found UpdateButton("UpdateUserButton", false, "Search again"); } else { MessageBox.Show("None of attributes were changed", "Nothing to change", MessageBoxButton.OK, MessageBoxImage.Information, MessageBoxResult.OK); } }