Skip to content

Commit

Permalink
Version Five (#401)
Browse files Browse the repository at this point in the history
* Code Factor, style and formatting. Pass #1 (#390)

* codefactor, blank lines

Documentation header line must not be followed by a blank line. Opening/Closing curly bracket must not be followed/preceded by a blank line

* codefactor, blank lines

Documentation header line must not be followed by a blank line. Opening/Closing curly bracket must not be followed/preceded by a blank line

* codefactor, blank lines

Documentation header line must not be followed by a blank line. Opening/Closing curly bracket must not be followed/preceded by a blank line

* codefactor, blank lines

Documentation header line must not be followed by a blank line. Opening/Closing curly bracket must not be followed/preceded by a blank line

* codefactor, blank lines

Documentation header line must not be followed by a blank line. Opening/Closing curly bracket must not be followed/preceded by a blank line

* codefactor, blank lines

Documentation header line must not be followed by a blank line. Opening/Closing curly bracket must not be followed/preceded by a blank line

* codefactor, blank lines

Documentation header line must not be followed by a blank line. Opening/Closing curly bracket must not be followed/preceded by a blank line

* codefactor, blank lines

Documentation header line must not be followed by a blank line. Opening/Closing curly bracket must not be followed/preceded by a blank line

* codefactor, blank lines

Documentation header line must not be followed by a blank line. Opening/Closing curly bracket must not be followed/preceded by a blank line

* codefactor, blank lines

Documentation header line must not be followed by a blank line. Opening/Closing curly bracket must not be followed/preceded by a blank line

* codefactor, blank lines

Documentation header line must not be followed by a blank line. Opening/Closing curly bracket must not be followed/preceded by a blank line

* codefactor, blank lines

Documentation header line must not be followed by a blank line. Opening/Closing curly bracket must not be followed/preceded by a blank line

* codefactor, blank lines

Documentation header line must not be followed by a blank line. Opening/Closing curly bracket must not be followed/preceded by a blank line

* codefactor, blank lines

Documentation header line must not be followed by a blank line. Opening/Closing curly bracket must not be followed/preceded by a blank line

* codefactor, blank lines

Documentation header line must not be followed by a blank line. Opening/Closing curly bracket must not be followed/preceded by a blank line

* codefactor, blank lines

Documentation header line must not be followed by a blank line. Opening/Closing curly bracket must not be followed/preceded by a blank line

* codefactor, blank lines

Documentation header line must not be followed by a blank line. Opening/Closing curly bracket must not be followed/preceded by a blank line

* codefactor, blank lines

Documentation header line must not be followed by a blank line. Opening/Closing curly bracket must not be followed/preceded by a blank line

* codefactor, blank lines

Documentation header line must not be followed by a blank line. Opening/Closing curly bracket must not be followed/preceded by a blank line

* codefactor, blank lines

Closing curly bracket must not be preceded by a blank line

* codefactor, multiple line breaks and semicolon

* Revert "Code Factor, style and formatting. Pass 1 (#390)" (#392)

This reverts commit 78dd38e.

* Code Factor, style and formatting. Pass 2 (#393)

* codefactor, blank lines

Documentation header line must not be followed by a blank line. Opening/Closing curly bracket must not be followed/preceded by a blank line

* codefactor, blank lines

Documentation header line must not be followed by a blank line. Opening/Closing curly bracket must not be followed/preceded by a blank line

* codefactor, blank lines

Documentation header line must not be followed by a blank line. Opening/Closing curly bracket must not be followed/preceded by a blank line

* codefactor, blank lines

Documentation header line must not be followed by a blank line. Opening/Closing curly bracket must not be followed/preceded by a blank line

* codefactor, blank lines

Documentation header line must not be followed by a blank line. Opening/Closing curly bracket must not be followed/preceded by a blank line

* codefactor, blank lines

Documentation header line must not be followed by a blank line. Opening/Closing curly bracket must not be followed/preceded by a blank line

* codefactor, blank lines

Documentation header line must not be followed by a blank line. Opening/Closing curly bracket must not be followed/preceded by a blank line

* codefactor, blank lines

Documentation header line must not be followed by a blank line. Opening/Closing curly bracket must not be followed/preceded by a blank line

* codefactor, blank lines

Documentation header line must not be followed by a blank line. Opening/Closing curly bracket must not be followed/preceded by a blank line

* codefactor, blank lines

Documentation header line must not be followed by a blank line. Opening/Closing curly bracket must not be followed/preceded by a blank line

* codefactor, blank lines

Documentation header line must not be followed by a blank line. Opening/Closing curly bracket must not be followed/preceded by a blank line

* codefactor, blank lines

Documentation header line must not be followed by a blank line. Opening/Closing curly bracket must not be followed/preceded by a blank line

* codefactor, blank lines

Documentation header line must not be followed by a blank line. Opening/Closing curly bracket must not be followed/preceded by a blank line

* codefactor, blank lines

Documentation header line must not be followed by a blank line. Opening/Closing curly bracket must not be followed/preceded by a blank line

* codefactor, blank lines

Documentation header line must not be followed by a blank line. Opening/Closing curly bracket must not be followed/preceded by a blank line

* codefactor, blank lines

Documentation header line must not be followed by a blank line. Opening/Closing curly bracket must not be followed/preceded by a blank line

* codefactor, blank lines

Documentation header line must not be followed by a blank line. Opening/Closing curly bracket must not be followed/preceded by a blank line

* codefactor, blank lines

Documentation header line must not be followed by a blank line. Opening/Closing curly bracket must not be followed/preceded by a blank line

* codefactor, blank lines

Documentation header line must not be followed by a blank line. Opening/Closing curly bracket must not be followed/preceded by a blank line

* codefactor, blank lines

Closing curly bracket must not be preceded by a blank line

* codefactor, multiple line breaks and semicolon

* Code Factor, style and formatting. Pass 3 (#394)

* codefactor, blank lines

Closing curly bracket must not be preceded by a blank line.

* codefactor, multiple blank lines

The code must not contain multiple blank lines in a row

* codefactor, blank lines (#395)

An opening curly bracket must not be followed by a blank line

* PSScriptAnalyzer, use singular nouns (#399)

* PSScriptAnalyzer, use singular nouns

To comply with best practices, functions should use singular nouns

* action trigger, remove linebreak

removing a line break so as to trigger github actions within a pull request

* multiple keywords (#400)

* icon, multiple keywords

adding icon for multiple keywords feature

* feature, multiple keywords

readme update for multiple keywords feature

* XAML, comma seperated keywords

modifies the regular expression on the text boxes for keywords so they can accept a single word or a series of words separated by a comma

* XAML, verbiage and UI resize

updating the XAML so the text boxes stretch as the Settings UI is resized. Also small verbiage changes in the header.

* feature, multiple keyword pwsh support

This change modifies the initial retrieval of keywords from the management pack so as handle a one or many keyword scenario PER keyword. The result of this is the current keyword variables are made regular expression friendly featuring a self-contained logical OR operation. e.g. \[(yes|approved|affirmative|roger)\] or in the case of a single word \[(yes)\]. In doing so, all subsequent actions taken against work items are preserved/reverse compatible while offering expanded functionality.

* XAML, from keyword

The "from" keyword is the only keyword whose exact substring position matters as it is used to identify the end of an email via the IndexOf() method. As such, it should not support multiple keyword instances.

* unused variables (#404)

The $userClass and $sysUserHasPrefRelClass variables are declared, but never used anywhere within the connector. Rather than delete them entirely, they have been commented out.

* variable scope, isMember (#405)

Upon some investigation of the function, it looks like PSScriptAnalyzer has an issue with the scope of $isMember. In order to fix this, an opportunity was presented that removes the initial $false declaration of $isMember, removes the foreach loop that checks each user of the group with the user coming into the function, and instead replaces it with a pipeline/where-object style operation. This also resulted in moving the logic for verifying if the group member is of type User.

* alias, missing parameter (#406)

While $alias is declared within Set-SCSMTemplate, it's only ever used in Update-SCSMPropertyCollection. As a result, alias has been introduced as a parameter to Update-SCSMPropertyCollection so as to properly receive the declared alias from Set-SCSMTemplate and resolve the error PSScriptAnalyzer is citing wherein $alias is declared but never used.

* usage, isVerifiedSig (#407)

* usage, isVerifiedSig

isVerifiedSig is indirectly used because the operation to the right hand side of the = operator is actually performing the decryption and updating $decryptedBody. The result of isVerifiedSig is actually an array of digital signatures.

* logic and whitespace

removing whitespace caught by PSScriptAnalyzer on PR and adding logic to respect logging levels

* scope modifier, using: (#408)

* appname, using:

Addressing issue per PSScriptAnalyzer wherein a variable passed into Invoke-Command's scriptblock should make use of the using: scope modifier

* unhealthySCOMApp, using:

Addressing issue per PSScriptAnalyzer wherein a variable passed into Invoke-Command's scriptblock should make use of the using: scope modifier

* using: context

PSScriptAnalyzer is still throwing an issue about the using: context for the unhealthy app. Breaking out the name into its own variable.

* extra )

removing the closing ) from the previous commit

* incorrect variable (#409)

since standardizing the message format via PSCustomObjects, this function should be using $message.From instead of $message.From.Address

* Attachments, Update-WorkItem

$parentworkitem does not exist in the default workitemtype switch

* Get-SCSMUserByEmailAddress cannot find mail addresses with a dash (#403)

* Update smletsExchangeConnector.ps1

If mail address contains a dash, the address won't be found in SCSM

* Wrong parameter data when calling Add-FileToSCSMObject

parentworkitem is never set for the default switch

* Revert "Wrong parameter data when calling Add-FileToSCSMObject"

This reverts commit 48c1252.

* description for IPM.Note.SMIME.MultipartSigned (#413)

Description is missing the word "signed"

* Single Instance Pickers (#412)

* get instance vs. textbox update

instead of retrieving the GUID of the chosen SCOM group from the Settings MP and then updating a text/label with the chosen name. The ConsoleContextHelper correctly updates and manages the Single Instance Picker control on the SCOMIntegrationForm.xaml

* remove label, format single instance picker

AdminSettingsWizardData now manages the SingleInstancePicker control. The label is no longer required.

* instance picker update

updating SCSM Announcement Group per previous commit on use of single instance picker and the SCOM Group picker

* remove DisplayName label

SingleInstancePicker now correctly updates per AdminSettingsWizardData

* single instance picker

updating announcement group logic for single instance picker

* Update Contributors (#414)

* contributor list

updating the list of contributors per pull requests #403 and #410

* contributor list

updating the list of contributors seen in the Settings UI per pull requests #403 and #410

* Settings UI forms and icons (#417)

* logging icon and line breaks

Adding line breaks for the logging options and the Event Log icon

* template icon

instead of the smlets exchange connector icon it should be the SCSM Template icon

* icons, event log and template

adding icons for updated Logging and Template forms

* build icons

include the icons in the build so they are included into the Settings UI dll so they can be referenced in the XAML forms

* move smlets import further up (#422)

it seems in certain configurations, SMLets isn't loaded soon enough in the connector's overall execution. As a result this prevents the script from successfully running.

* Total runtime logging (#423)

Previously if there were no messages to processes, the event order would be (at a minimum) 0 = connected to exchange and then 5 = filtering mailbox. There was no indication that there were 0/no messages to process and/or that 5 was the "last" event one would see for a run of the connector. As such, the logging could be misinterpreted as the connector not successfully completing a run. This change removes that uncertainty as the event is now logged regardless of the number of messages to process as well as introducing event 6 which shows the total runtime of the connector for a given number of messages. Now the minimum logging order is 0, 5, 2, 6 which is more representative of a start, connect, process and finish of the connector.

* Extended OAuth logging (#424)

* Update smletsExchangeConnector.ps1

If mail address contains a dash, the address won't be found in SCSM

* Wrong parameter data when calling Add-FileToSCSMObject

parentworkitem is never set for the default switch

* Revert "Wrong parameter data when calling Add-FileToSCSMObject"

This reverts commit 48c1252.

* Added logging for OAuth

* event numbering

updating event log numbering

Co-authored-by: Adam <adhocadam@protonmail.com>

* Add DisplayName to new workitems (#425)

* Update smletsExchangeConnector.ps1

If mail address contains a dash, the address won't be found in SCSM

* Wrong parameter data when calling Add-FileToSCSMObject

parentworkitem is never set for the default switch

* Revert "Wrong parameter data when calling Add-FileToSCSMObject"

This reverts commit 48c1252.

* Added logging for OAuth

* Add displayname to new workitems as in the console

* different separator character

When an Incident is created, it uses a - instead of a : to build the DisplayName property

* character spacing

closer inspection of creating Work Items in the console show there is a difference in spacing for the DisplayName on Problem and Change Requests

Co-authored-by: Adam <adhocadam@protonmail.com>

* inline notes (#426)

updating notes on the inline powershell

* regex test (#427)

correcting per #420

* updating inline notes

prepping inline notes for final release

* re-arrange start time variable

rather than place the startTime variable at the first line, its now moved right before PowerShell actually starts executing/is loaded into memory. This preserves the initial comment block.

Co-authored-by: Alexander Axberg <alexander.axberg@gmail.com>
  • Loading branch information
AdhocAdam and alexaxb committed Dec 25, 2022
1 parent 9bcd584 commit 29efc4c
Show file tree
Hide file tree
Showing 34 changed files with 360 additions and 224 deletions.
Binary file added FeatureScreenshots/multipleKeywords.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion ManagementPack/2016/SMLets.Exchange.Connector/Settings.mpx
Expand Up @@ -1500,7 +1500,7 @@
</DisplayString>
<DisplayString ElementID="SMLets.Exchange.Connector.MessageClassEnum.IPM.Note.SMIME.MultipartSigned">
<Name>IPM.Note.SMIME.MultipartSigned</Name>
<Description>A digitally email message</Description>
<Description>A digitally signed email message</Description>
</DisplayString>
<DisplayString ElementID="SMLets.Exchange.Connector.MessageClassEnum.IPM.Schedule.Meeting.Request">
<Name>IPM.Schedule.Meeting.Request</Name>
Expand Down
@@ -1,4 +1,4 @@
using System;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
Expand All @@ -12,6 +12,7 @@
using Microsoft.EnterpriseManagement.ConnectorFramework;
using System.Xml;
using System.Globalization;
using Microsoft.EnterpriseManagement.UI.Extensions.Shared;

namespace SMLetsExchangeConnectorSettingsUI
{
Expand Down Expand Up @@ -1900,7 +1901,6 @@ public String AzureCognitiveServicesBoundaries
}
}


public ManagementPackProperty ACSIncidentSentimentDecExtension
{
get
Expand Down Expand Up @@ -2227,7 +2227,7 @@ public ManagementPackProperty AMLIncidentClassificationPredictionEnumExtension
{
get
{
return incidentAMLClassificationPredictionExtensionEnum; ;
return incidentAMLClassificationPredictionExtensionEnum;
}
set
{
Expand Down Expand Up @@ -3070,16 +3070,16 @@ internal AdminSettingWizardData(EnterpriseManagementObject emoAdminSetting)
catch { this.IsCiresonAnnouncementsEnabled = false; }

this.SCSMApprovedAnnouncers = emoAdminSetting[smletsExchangeConnectorSettingsClass, "SCSMApprovedAnnouncementUsers"].ToString();
try
{
this.SCSMApprovedGroupGUID = (Guid)emoAdminSetting[null, "SCSMApprovedAnnouncementGroupGUID"].Value;
EnterpriseManagementObject ScsmApprovedGroupEmoObject;
ScsmApprovedGroupEmoObject = (EnterpriseManagementObject)emg.EntityObjects.GetObject<EnterpriseManagementObject>(this.SCSMApprovedGroupGUID, ObjectQueryOptions.Default);
this.SCSMApprovedGroupDisplayName = "CURRENT ANNOUNCEMENT GROUP: " + ScsmApprovedGroupEmoObject.DisplayName;
}
catch
if (emoAdminSetting[smletsExchangeConnectorSettingsClass, "SCSMApprovedAnnouncementGroupGUID"].Value != null)
{
this.SCSMApprovedGroupDisplayName = "NO ANNOUNCEMENT GROUP DEFINED";
try
{
this.SCSMApprovedAnnouncementGroup = ConsoleContextHelper.Instance.GetInstance((Guid)emoAdminSetting[smletsExchangeConnectorSettingsClass, "SCSMApprovedAnnouncementGroupGUID"].Value);
}
catch
{
//"NO ANNOUNCEMENT GROUP DEFINED";
}
}

//SCOM Integration
Expand All @@ -3088,16 +3088,16 @@ internal AdminSettingWizardData(EnterpriseManagementObject emoAdminSetting)
this.SCOMServer = emoAdminSetting[smletsExchangeConnectorSettingsClass, "SCOMmgmtServer"].ToString();
this.AuthorizedSCOMApproverType = emoAdminSetting[smletsExchangeConnectorSettingsClass, "SCOMApprovedMemberType"].ToString();
this.AuthorizedSCOMUsers = emoAdminSetting[smletsExchangeConnectorSettingsClass, "SCOMApprovedUsers"].ToString();
try
{
this.SCOMApprovedGroupGUID = (Guid)emoAdminSetting[null, "SCOMApprovedGroupGUID"].Value;
EnterpriseManagementObject ScomApprovedGroupEmoObject;
ScomApprovedGroupEmoObject = (EnterpriseManagementObject)emg.EntityObjects.GetObject<EnterpriseManagementObject>(this.SCOMApprovedGroupGUID, ObjectQueryOptions.Default);
this.SCOMApprovedGroupDisplayName = "CURRENT APPROVED GROUP: " + ScomApprovedGroupEmoObject.DisplayName;
}
catch
if (emoAdminSetting[smletsExchangeConnectorSettingsClass, "SCOMApprovedGroupGUID"].Value != null)
{
this.SCOMApprovedGroupDisplayName = "NO SCOM GROUP DEFINED";
try
{
this.SCOMApprovedGroup = ConsoleContextHelper.Instance.GetInstance((Guid)emoAdminSetting[smletsExchangeConnectorSettingsClass, "SCOMApprovedGroupGUID"].Value);
}
catch
{
//"NO SCOM GROUP DEFINED";
}
}

//Artificial Intelligence - Cognitive Services
Expand Down Expand Up @@ -3200,7 +3200,6 @@ internal AdminSettingWizardData(EnterpriseManagementObject emoAdminSetting)
catch { }
try
{

if (irproperty.Id == (Guid)emoAdminSetting[smletsExchangeConnectorSettingsClass, "ACSSentimentScoreIncidentClassExtensionGUID"].Value)
{
this.ACSIncidentSentimentDecExtension = irproperty;
Expand Down Expand Up @@ -3286,7 +3285,6 @@ internal AdminSettingWizardData(EnterpriseManagementObject emoAdminSetting)
catch { }
try
{

if (srproperty.Id == (Guid)emoAdminSetting[smletsExchangeConnectorSettingsClass, "ACSSentimentScoreServiceRequestClassExtensionGUID"].Value)
{
this.ACSServiceRequestSentimentDecExtension = srproperty;
Expand Down Expand Up @@ -3600,7 +3598,6 @@ public override void AcceptChanges(WizardMode wizardMode)

}
}

//Use Custom Rules
emoAdminSetting[smletsExchangeConnectorSettingsClass, "UseCustomRules"].Value = this.UseCustomRules;

Expand Down Expand Up @@ -3688,7 +3685,6 @@ public override void AcceptChanges(WizardMode wizardMode)

}
}

//Keywords
emoAdminSetting[smletsExchangeConnectorSettingsClass, "SCSMKeywordFrom"].Value = this.KeywordFrom;
emoAdminSetting[smletsExchangeConnectorSettingsClass, "SCSMKeywordAcknowledge"].Value = this.KeywordAcknowledge;
Expand Down Expand Up @@ -3763,17 +3759,31 @@ public override void AcceptChanges(WizardMode wizardMode)
}
emoAdminSetting[smletsExchangeConnectorSettingsClass, "SCSMApprovedAnnouncementUsers"].Value = this.SCSMApprovedAnnouncers;
//if the Announcement group is set, don't null it
try { emoAdminSetting[smletsExchangeConnectorSettingsClass, "SCSMApprovedAnnouncementGroupGUID"].Value = this.SCSMApprovedAnnouncementGroup["Id"]; }
catch { }
if (this.SCSMApprovedAnnouncementGroup != null)
{
try { emoAdminSetting[smletsExchangeConnectorSettingsClass, "SCSMApprovedAnnouncementGroupGUID"].Value = this.SCSMApprovedAnnouncementGroup["Id"]; }
catch { }
}
else
{
emoAdminSetting[smletsExchangeConnectorSettingsClass, "SCSMApprovedAnnouncementGroupGUID"].Value = null;
}

//SCOM Integration
emoAdminSetting[smletsExchangeConnectorSettingsClass, "EnableSCOMIntegration"].Value = this.IsSCOMIntegrationEnabled;
emoAdminSetting[smletsExchangeConnectorSettingsClass, "SCOMmgmtServer"].Value = this.SCOMServer;
emoAdminSetting[smletsExchangeConnectorSettingsClass, "SCOMApprovedMemberType"].Value = this.AuthorizedSCOMApproverType;
emoAdminSetting[smletsExchangeConnectorSettingsClass, "SCOMApprovedUsers"].Value = this.AuthorizedSCOMUsers;
//if the SCOM approved group is set, don't null it
try { emoAdminSetting[smletsExchangeConnectorSettingsClass, "SCOMApprovedGroupGUID"].Value = this.SCOMApprovedGroup["Id"]; }
catch { }
if (this.SCOMApprovedGroup != null)
{
try { emoAdminSetting[smletsExchangeConnectorSettingsClass, "SCOMApprovedGroupGUID"].Value = this.SCOMApprovedGroup["Id"]; }
catch { }
}
else
{
emoAdminSetting[smletsExchangeConnectorSettingsClass, "SCOMApprovedGroupGUID"].Value = null;
}

//Artifical Intelligence - enabled/disabled
emoAdminSetting[smletsExchangeConnectorSettingsClass, "EnableArtificialIntelligence"].Value = this.IsArtificialIntelligenceEnabled;
Expand Down
Expand Up @@ -24,10 +24,12 @@ namespace SMLetsExchangeConnectorSettingsUI
{
internal class AdminTaskHandler : ConsoleCommand
{
/*
public AdminTaskHandler()
{
}
*/

public override void ExecuteCommand(IList<NavigationModelNodeBase> nodes, NavigationModelNodeTask task, ICollection<string> parameters)
{
Expand Down Expand Up @@ -95,6 +97,5 @@ From BaseManagedEntity
RequestViewRefresh();
}
}

}
}
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Expand Up @@ -14,7 +14,7 @@
<!-- Contributors -->
<TextBlock Margin="0,5,0,0" TextWrapping="Wrap" FontStyle="Italic" Text="SMLets Exchange Connector (PowerShell) Contributors" />
<TextBlock Margin="10,0" TextWrapping="Wrap" Text="Martin Blomgren, Tom Hendricks, Leigh Kilday, nradler2, Justin Workman, Brad Zima, bennyguk, Jan Schulz,
Peter Miklian, Daniel Polivka" />
Peter Miklian, Daniel Polivka, Alexander Axberg" />
<!-- Reviewers -->
<TextBlock Margin="0,5,0,0" TextWrapping="Wrap" FontStyle="Italic" Text="SMLets Exchange Connector (PowerShell) Reviewers" />
<TextBlock Margin="10,0" TextWrapping="Wrap" Text="Tom Hendricks, Brian Wiest" />
Expand Down
Expand Up @@ -20,7 +20,6 @@ namespace SMLetsExchangeConnectorSettingsUI
/// <summary>
/// Interaction logic for AboutForm.xaml
/// </summary>

public partial class AboutForm : WizardRegularPageBase
{
private AboutForm adminSettingWizardData = null;
Expand All @@ -32,16 +31,17 @@ public AboutForm(WizardData wizardData)
this.adminSettingWizardData = this.DataContext as AboutForm;
}

/*
private void WizardRegularPageBase_Loaded(object sender, RoutedEventArgs e)
{
}
*/

//take the URL defined in the WPF and open a browser to it
private void Hyperlink_RequestNavigate(object sender, System.Windows.Navigation.RequestNavigateEventArgs e)
{
System.Diagnostics.Process.Start(e.Uri.AbsoluteUri);
}

}
}
}
@@ -1,4 +1,4 @@
<wpfwiz:WizardRegularPageBase x:Class="SMLetsExchangeConnectorSettingsUI.AnnouncementsForm"
<wpfwiz:WizardRegularPageBase x:Class="SMLetsExchangeConnectorSettingsUI.AnnouncementsForm"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
Expand Down Expand Up @@ -55,7 +55,6 @@
<TextBox Height="50" x:Name="txtApprovedMember" Text="{Binding SCSMApprovedAnnouncers}" IsEnabled="{Binding ElementName=chkAnnouncementIntegration, Path=IsChecked}" TextWrapping="Wrap"/>
<Label Margin="0,0,0,0" Content="Select the AD group approved for creating Announcements" />
<Custom:SingleInstancePicker IsEnabled="{Binding ElementName=chkAnnouncementIntegration, Path=IsChecked}" Instance="{Binding SCSMApprovedAnnouncementGroup, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" BaseClassId="E2386B9B-5364-E438-A317-93836B979C56" Margin="0,0,10,0" />
<Label Margin="0,0,0,0" Content="{Binding SCSMApprovedGroupDisplayName}" />
</StackPanel>
</Grid>
</wpfwiz:WizardRegularPageBase>
</wpfwiz:WizardRegularPageBase>
Expand Up @@ -20,7 +20,6 @@ namespace SMLetsExchangeConnectorSettingsUI
/// <summary>
/// Interaction logic for AnnouncementsForm.xaml
/// </summary>

public partial class AnnouncementsForm : WizardRegularPageBase
{
//1. Create a blank Instance of AdminSettingsWizardData called "settings"
Expand All @@ -40,10 +39,12 @@ public AnnouncementsForm(WizardData wizardData)
//enable Cireson specific controls if the MP is imported per the AdminSettingsWizardData
if (settings.IsCiresonPortalMPImported == false) { chkPostAnnouncementToCiresonPortal.IsEnabled = false; }
}


/*
private void WizardRegularPageBase_Loaded(object sender, RoutedEventArgs e)
{
}
*/
}
}
Expand Up @@ -26,7 +26,6 @@ namespace SMLetsExchangeConnectorSettingsUI
/// <summary>
/// Interaction logic for AzureCognitiveServices.xaml
/// </summary>

public partial class ArtificialIntelligence : WizardRegularPageBase
{
//1. Create a blank Instance of AdminSettingsWizardData called "settings"
Expand Down Expand Up @@ -110,10 +109,12 @@ public ArtificialIntelligence(WizardData wizardData)
catch { }
}

/*
private void WizardRegularPageBase_Loaded(object sender, RoutedEventArgs e)
{
}
*/

//take the URL defined in the WPF and open a browser to it
private void Hyperlink_RequestNavigate(object sender, System.Windows.Navigation.RequestNavigateEventArgs e)
Expand Down Expand Up @@ -228,4 +229,4 @@ public override void SaveState(SavePageEventArgs e)
if (acsBoundariesToAddStringArray != null) { settings.AzureCognitiveServicesBoundaries = ACSBoundariesXMLString; }
}
}
}
}
Expand Up @@ -20,7 +20,6 @@ namespace SMLetsExchangeConnectorSettingsUI
/// <summary>
/// Interaction logic for AzureSpeech.xaml
/// </summary>

public partial class AzureSpeech : WizardRegularPageBase
{
AdminSettingWizardData settings;
Expand All @@ -34,9 +33,11 @@ public AzureSpeech(WizardData wizardData)
this.adminSettingWizardData = this.DataContext as AzureSpeech;
}

/*
private void WizardRegularPageBase_Loaded(object sender, RoutedEventArgs e)
{
}
*/
}
}
Expand Up @@ -20,7 +20,6 @@ namespace SMLetsExchangeConnectorSettingsUI
/// <summary>
/// Interaction logic for AzureTranslate.xaml
/// </summary>

public partial class AzureTranslate : WizardRegularPageBase
{
AdminSettingWizardData settings;
Expand All @@ -34,9 +33,11 @@ public AzureTranslate(WizardData wizardData)
this.adminSettingWizardData = this.DataContext as AzureTranslate;
}

/*
private void WizardRegularPageBase_Loaded(object sender, RoutedEventArgs e)
{
}
*/
}
}
Expand Up @@ -20,7 +20,6 @@ namespace SMLetsExchangeConnectorSettingsUI
/// <summary>
/// Interaction logic for AzureTranslate.xaml
/// </summary>

public partial class AzureVision : WizardRegularPageBase
{
AdminSettingWizardData settings;
Expand All @@ -34,9 +33,11 @@ public AzureVision(WizardData wizardData)
this.adminSettingWizardData = this.DataContext as AzureVision;
}

/*
private void WizardRegularPageBase_Loaded(object sender, RoutedEventArgs e)
{
}
*/
}
}
Expand Up @@ -20,7 +20,6 @@ namespace SMLetsExchangeConnectorSettingsUI
/// <summary>
/// Interaction logic for SettingsUI.xaml
/// </summary>

public partial class CiresonIntegrationForm : WizardRegularPageBase
{
//1. Create a blank Instance of AdminSettingsWizardData called "settings"
Expand All @@ -41,9 +40,11 @@ public CiresonIntegrationForm(WizardData wizardData)
if (settings.IsCiresonPortalMPImported == false) { chkCiresonIntegration.IsEnabled = false; }
}

/*
private void WizardRegularPageBase_Loaded(object sender, RoutedEventArgs e)
{
}
*/
}
}
Expand Up @@ -24,7 +24,6 @@ namespace SMLetsExchangeConnectorSettingsUI
/// <summary>
/// Interaction logic for CustomRules.xaml
/// </summary>

public partial class CustomRules : WizardRegularPageBase
{
//1. Create a blank Instance of AdminSettingsWizardData called "settings"
Expand Down Expand Up @@ -65,10 +64,12 @@ public CustomRules(WizardData wizardData)
catch { }
}

/*
private void WizardRegularPageBase_Loaded(object sender, RoutedEventArgs e)
{
}
*/

//create a class so additional custom rule object can be created per row and later worked with as objects
public class AdditionalCustomRule
Expand Down Expand Up @@ -153,4 +154,4 @@ public override void SaveState(SavePageEventArgs e)
if (customRuleToAddStringArray != null) { settings.MultipleCustomRulesToAdd = customRuleToAddStringArray; }
}
}
}
}

0 comments on commit 29efc4c

Please sign in to comment.