From bc1a7516d589329d2851915ebda2f21444b3edaf Mon Sep 17 00:00:00 2001 From: Adam Date: Mon, 21 Oct 2019 23:23:48 -0500 Subject: [PATCH] Version Two (#150) * Settings MP beta 3 Initial commit brings the Settings MP branch to parity with v1.5 functionality and the work performed in the last several months. * incomplete upload It's possible there may have been an incomplete upload from earlier * incomplete upload #2 Missing the actual solution file to load both projects * Beginning conversion Starting to pull configuration from the Settings MP rather than the script itself. * Support for Template Guids/Multi-Mailbox Since the Settings MP now stores templates as their Guid, sections that previously relied on use of Get-SCSMObjectTemplate -DisplayName have been converted to use the -Id parameter instead. However changing template retrieval/variables also has implications on the multi-mailbox feature. As such, the means by which additional mailboxes are retrieved has been altered to obtain those mailbox objects and load them back into the hashtable expected by this particular feature. * alpha 2 MP adjustments Addressing that some WPF controls appear cut off, the title of the Settings window reads "beta 3" and lack of a Private keyword configuration. Updated tooltip verbiage for adding email replies to action log entry per #131 and #132 as well as introduced an icon (e.g. Exchange User Mailbox) for multiple mailboxes. * Updating PS for new properties Per recent management pack changes, the script now retrieves the Private keyword as well as the SCOM defined AD Group * Fixing download/clone annoyance When the branch is downloaded Windows views the file as identical, whereas GitHub does not due to case sensitivity. While this will introduce a break to the blog, it's one that can be easily rectified by updating the respective post. * more fixes. Decimal values in text boxes, deleting multiple mailboxes, and support for ACS priority scoring * Updating AI integration Updating PowerShell to pull ACS and AML based settings from the management pack * More validation Given the importance of keywords to the connector, I really wanted to ensure these incredibly core settings can't be entered incorrectly or accidentally. With the featured regex, keywords can't start or end with a space nor feature any special characters just like the PowerShell configuration. On Cireson portal integration, I opted to simply do a string check and append an "/" if it was missing. Finally, Problem Support Group has been opened up as a drop down. * Didn't upload in previous commit Ensures trailing "/" is placed when using Cireson portal integration. * Beginning PR support group integration Starting to layout the PR support group integration * extending [take] for problem support group Expands the take logic for Problems similiar to Incidents, Service Requests, Changes, and Manual Activities with support for verifying group membership. * Fix for custom events Noticed that custom events wasn't actually pulling from the MP * updating version title Changing version of the seen in the header when opening the UI * Issue with template selection If an Incident, Service Request, Change Request, or Problem Form's appearance were customized via the Authoring Tool. Then Templates created after the import of that form customization MP within the SCSM Console produce Templates that aren't available for selection in the SMLets Exchange Connector. This happens because the act of customizing a Form in the Authoring Tool results in the automatic creation of new Type Projections behind the scenes for that Form based MP. * Aligning with next RC Haven't been keeping the next version in line with the actual release downloads. * Updating AML references Pointing AML properties at the Settings MP. 2 are missing due to a change in v1.6 that will require two additional properties on the Settings MP (work item type prediction). Along with 3 additional properties on the Settings MP for Azure Translation Services. * ACS Translate properties Adding 3 new properties to support Azure Translate integration per v1.6 * ACS Translate data bindings Updating AdminSettingsWizardData (C# code behind to the Settings UI) to reference the new Azure Translate properties on the Management pack (Settings.mpx) * ACS Translate form New form for the Settings UI that surfaces the MP properties for Azure Translate functionality * ACS Translate logo For the Azure Translate form * ACS Translation project inclusion Updating so project builds with new forms and logic * PowerShell update for ACS Properties Updating the PowerShell to pull the new ACS properties that can be defined in the Settings MP * AML Prediction Properties Adding properties per v1.6 changes * AML Data bindings Updating AdminSettingsWizardData (C# code behind to the Settings UI) to reference the new AML properties on the Management pack (Settings.mpx) * AML form update Updating AML form to support two properties for AML prediction reporting per v1.6 * AML update and parsing fixes Round out the AML class extension feature per v1.6. Added error handling for int/dec fields that aren't mandatory. * AML properties and notes Linking PowerShell AML properties to MP. Added notes around each section that convert these guids back to their respective names. Probably will come back to that section to clean up. * AML variable and property conversion Updated the section that converts property GUIDs to their display name to use downstream in New-WorkItem * Updating Versioning and Translation Updating versioning and adding Translation form into WizardStory as a WizardStep * Changing Class Extension logic Previously, the way to retrieve valid class extensions was looking for a specific data type (string, dec, enum) and whose identifier did not contain X. As I'm reviewing this, #130 came to mind and as a result I've changed how the "not like" part of this statement works. Now this is based on the internal name of an MP that the property comes from. This should prove to be far more reliable. * Changing min req Calling out that the upcoming v2 requires 2016 minimum. * Updating placeholder Adding placeholder table for Settings MP description and screenshot. * Updating Settings verbiage Adding some text into the table along with a screenshot from the blog. * updating min version again missed one * grammar and verbiage Removing some redundancy and changing some verbiage * Misleading verbiage The checkbox controls whether or not autodiscover is used, but is phrased backwards. Since this flips the boolean logic for "isenabled" on the autodiscover text box, that's been removed and now it's always available for edit regardless of checkbox setting. Not ideal from a validation standpoint, but is less confusing. * Diff default Work Item Defaulting to the last item in the list. * Incorrect variable Save action wasn't working with the SR comment type/choice. * Ensuring null value This is an example of where the string "(null)" actually introduces a potential issue issue for the PowerShell logic. Will continue to spot check other areas. * SCOM group check If the property is empty, PowerShell will throw an error * Incrementing MPB version vNext Preparing for final v2 release * Error handling for custom actions If for any reason the path can't be loaded, it should provide a custom message in the event the connector is running in SMA or Azure Automation * Adjusting custom paths handling again Moving from a try/catch to a if to see if the file ends in .ps1 (e.g. PowerShell). * Fixing Suggestion Call Function doesn't handle when both values are null. As such, the function runs through it's entire execution only to error out. When returned to the New-WorkItem function, error are thrown to the effect of "Cannot index into a null array." It seems highly likely this isn't unique to v2. Will investigate master branch. * Removing RC2 from title Preparing for v2 final. * updating change notes adding v2 change notes --- .../2016/SMLets.Exchange.Connector.sln | 36 + .../Images/164x146.png | Bin 0 -> 36676 bytes .../Images/16x16.png | Bin 0 -> 3625 bytes .../Images/exchangeMailbox16x16.png | Bin 0 -> 3562 bytes .../MPResources.resources | Bin 0 -> 4806 bytes .../SMLets.Exchange.Connector.mpproj | 113 + .../SMLets.Exchange.Connector.mpproj.user | 12 + .../SMLets.Exchange.Connector/Settings.mpx | 1207 +++++++ .../keypairs/publickeytoken.txt | 1 + .../smletsExchangeConnectorKeyPair.pubkey | Bin 0 -> 160 bytes .../smletsExchangeConnectorKeyPair.snk | Bin 0 -> 596 bytes .../AdminSettingsWizardData.cs | 3121 +++++++++++++++++ .../AdminTaskHandler.cs | 91 + .../AssemblyImages/GitHub120x120.png | Bin 0 -> 4268 bytes .../AssemblyImages/SCOM256x256.png | Bin 0 -> 29178 bytes .../AssemblyImages/ViennaLogo.png | Bin 0 -> 22150 bytes .../AssemblyImages/announcement.png | Bin 0 -> 12702 bytes .../azureCognitiveServicesIcon150x150.png | Bin 0 -> 18585 bytes .../AssemblyImages/ciresonLogo.png | Bin 0 -> 18860 bytes .../AssemblyImages/dll.png | Bin 0 -> 13953 bytes .../AssemblyImages/merge.png | Bin 0 -> 6020 bytes .../AssemblyImages/note.png | Bin 0 -> 1746 bytes .../AssemblyImages/outlookMeeting.png | Bin 0 -> 3620 bytes .../AssemblyImages/paperclip.png | Bin 0 -> 2377 bytes .../AssemblyImages/psExchangeIcon164x146.png | Bin 0 -> 36676 bytes .../AssemblyImages/translate.png | Bin 0 -> 13580 bytes .../Forms/AboutForm.xaml | 52 + .../Forms/AboutForm.xaml.cs | 47 + .../Forms/AnnouncementsForm.xaml | 61 + .../Forms/AnnouncementsForm.xaml.cs | 49 + .../Forms/ArtificialIntelligence.xaml | 333 ++ .../Forms/ArtificialIntelligence.xaml.cs | 231 ++ .../Forms/AzureTranslate.xaml | 31 + .../Forms/AzureTranslate.xaml.cs | 42 + .../Forms/CiresonIntegrationForm.xaml | 42 + .../Forms/CiresonIntegrationForm.xaml.cs | 49 + .../Forms/DLLForm.xaml | 44 + .../Forms/DLLForm.xaml.cs | 89 + .../Forms/FileAttachmentForm.xaml | 24 + .../Forms/FileAttachmentForm.xaml.cs | 40 + .../Forms/GeneralSettingsForm.xaml | 30 + .../Forms/GeneralSettingsForm.xaml.cs | 40 + .../Forms/KeywordsForm.xaml | 55 + .../Forms/KeywordsForm.xaml.cs | 40 + .../Forms/MultipleMailboxes.xaml | 119 + .../Forms/MultipleMailboxes.xaml.cs | 229 ++ .../Forms/ProcessingLogicForm.xaml | 172 + .../Forms/ProcessingLogicForm.xaml.cs | 123 + .../Forms/SCOMIntegrationForm.xaml | 44 + .../Forms/SCOMIntegrationForm.xaml.cs | 40 + .../Forms/TemplateForm.xaml | 73 + .../Forms/TemplateForm.xaml.cs | 54 + .../Properties/AssemblyInfo.cs | 36 + .../SMLetsExchangeConnectorSettingsUI.csproj | 206 ++ .../Validation/SelectionValidationRule.cs | 54 + .../DesignTimeResolveAssemblyReferences.cache | Bin 0 -> 35708 bytes ...gnTimeResolveAssemblyReferencesInput.cache | Bin 0 -> 8310 bytes .../obj/Debug/Forms/AboutForm.g.i.cs | 99 + .../obj/Debug/Forms/AnnouncementsForm.g.i.cs | 289 ++ .../Debug/Forms/ArtificialIntelligence.g.i.cs | 611 ++++ .../Debug/Forms/AzureCognitiveServices.g.i.cs | 504 +++ .../Debug/Forms/CiresonIntegrationForm.g.i.cs | 223 ++ .../obj/Debug/Forms/DLLForm.g.i.cs | 200 ++ .../obj/Debug/Forms/FileAttachmentForm.g.i.cs | 135 + .../Debug/Forms/GeneralSettingsForm.g.i.cs | 190 + .../obj/Debug/Forms/KeywordsForm.g.i.cs | 465 +++ .../obj/Debug/Forms/MultipleMailboxes.g.i.cs | 149 + .../Debug/Forms/ProcessingLogicForm.g.i.cs | 544 +++ .../Debug/Forms/SCOMIntegrationForm.g.i.cs | 159 + .../Debug/Forms/TemplateForm - Copy.g.i.cs | 168 + .../obj/Debug/Forms/TemplateForm.g.i.cs | 187 + .../obj/Debug/Forms/UserControl1.g.i.cs | 77 + .../Debug/GeneratedInternalTypeHelper.g.i.cs | 62 + ...ctorSettingsUI.csproj.FileListAbsolute.txt | 35 + ...eConnectorSettingsUI_MarkupCompile.i.cache | 20 + ...geConnectorSettingsUI_MarkupCompile.i.lref | 7 + .../Microsoft.EnterpriseManagement.Core.dll | Bin 0 -> 4078280 bytes ...ment.ServiceManager.Application.Common.dll | Bin 0 -> 1790712 bytes ...agement.ServiceManager.SharedResources.dll | Bin 0 -> 647440 bytes ...iseManagement.ServiceManager.UI.Console.mp | Bin 0 -> 73480 bytes ...osoft.EnterpriseManagement.UI.Controls.dll | Bin 0 -> 887056 bytes ...terpriseManagement.UI.ExtendedControls.dll | Bin 0 -> 94984 bytes ...oft.EnterpriseManagement.UI.FormsInfra.dll | Bin 0 -> 558864 bytes ...oft.EnterpriseManagement.UI.Foundation.dll | Bin 0 -> 234256 bytes ...oft.EnterpriseManagement.UI.SMControls.dll | Bin 0 -> 410888 bytes ....EnterpriseManagement.UI.SdkDataAccess.dll | Bin 0 -> 2787064 bytes ...rpriseManagement.UI.WpfWizardFramework.dll | Bin 0 -> 542472 bytes .../Microsoft.SystemCenter.Library.mp | Bin 0 -> 458512 bytes .../2016/dependencies/PresentationCore.dll | Bin 0 -> 1299984 bytes .../dependencies/PresentationFramework.dll | Bin 0 -> 2040344 bytes .../2016/dependencies/ProblemManagement.mpb | Bin 0 -> 450560 bytes .../dependencies/System.AdminItem.Library.mp | Bin 0 -> 61192 bytes .../2016/dependencies/System.Core.dll | Bin 0 -> 235008 bytes .../System.Data.DataSetExtensions.dll | Bin 0 -> 27296 bytes .../2016/dependencies/System.Data.dll | Bin 0 -> 1164272 bytes .../2016/dependencies/System.Library.mp | Bin 0 -> 294664 bytes .../System.Windows.Presentation.dll | Bin 0 -> 23192 bytes .../System.WorkItem.Incident.Library.mp | Bin 0 -> 57096 bytes .../System.WorkItem.Problem.Library.mp | Bin 0 -> 61200 bytes .../System.WorkItem.ReleaseRecord.Library.mp | Bin 0 -> 53008 bytes .../System.WorkItem.ServiceRequest.Library.mp | Bin 0 -> 53008 bytes .../2016/dependencies/System.XML.dll | Bin 0 -> 921688 bytes .../2016/dependencies/System.Xaml.dll | Bin 0 -> 109656 bytes .../2016/dependencies/System.Xml.Linq.dll | Bin 0 -> 43112 bytes .../2016/dependencies/WPFToolKit.dll | Bin 0 -> 806448 bytes .../2016/dependencies/WindowsBase.dll | Bin 0 -> 650328 bytes README.md | 14 +- .../images/CreateACustomMPSettingsPane/30.PNG | Bin 73385 -> 0 bytes smletsExchangeConnector.ps1 | 475 +-- 109 files changed, 11434 insertions(+), 209 deletions(-) create mode 100644 ManagementPack/2016/SMLets.Exchange.Connector.sln create mode 100644 ManagementPack/2016/SMLets.Exchange.Connector/Images/164x146.png create mode 100644 ManagementPack/2016/SMLets.Exchange.Connector/Images/16x16.png create mode 100644 ManagementPack/2016/SMLets.Exchange.Connector/Images/exchangeMailbox16x16.png create mode 100644 ManagementPack/2016/SMLets.Exchange.Connector/MPResources.resources create mode 100644 ManagementPack/2016/SMLets.Exchange.Connector/SMLets.Exchange.Connector.mpproj create mode 100644 ManagementPack/2016/SMLets.Exchange.Connector/SMLets.Exchange.Connector.mpproj.user create mode 100644 ManagementPack/2016/SMLets.Exchange.Connector/Settings.mpx create mode 100644 ManagementPack/2016/SMLets.Exchange.Connector/keypairs/publickeytoken.txt create mode 100644 ManagementPack/2016/SMLets.Exchange.Connector/keypairs/smletsExchangeConnectorKeyPair.pubkey create mode 100644 ManagementPack/2016/SMLets.Exchange.Connector/keypairs/smletsExchangeConnectorKeyPair.snk create mode 100644 ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/AdminSettingsWizardData.cs create mode 100644 ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/AdminTaskHandler.cs create mode 100644 ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/AssemblyImages/GitHub120x120.png create mode 100644 ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/AssemblyImages/SCOM256x256.png create mode 100644 ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/AssemblyImages/ViennaLogo.png create mode 100644 ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/AssemblyImages/announcement.png create mode 100644 ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/AssemblyImages/azureCognitiveServicesIcon150x150.png create mode 100644 ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/AssemblyImages/ciresonLogo.png create mode 100644 ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/AssemblyImages/dll.png create mode 100644 ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/AssemblyImages/merge.png create mode 100644 ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/AssemblyImages/note.png create mode 100644 ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/AssemblyImages/outlookMeeting.png create mode 100644 ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/AssemblyImages/paperclip.png create mode 100644 ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/AssemblyImages/psExchangeIcon164x146.png create mode 100644 ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/AssemblyImages/translate.png create mode 100644 ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/Forms/AboutForm.xaml create mode 100644 ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/Forms/AboutForm.xaml.cs create mode 100644 ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/Forms/AnnouncementsForm.xaml create mode 100644 ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/Forms/AnnouncementsForm.xaml.cs create mode 100644 ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/Forms/ArtificialIntelligence.xaml create mode 100644 ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/Forms/ArtificialIntelligence.xaml.cs create mode 100644 ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/Forms/AzureTranslate.xaml create mode 100644 ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/Forms/AzureTranslate.xaml.cs create mode 100644 ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/Forms/CiresonIntegrationForm.xaml create mode 100644 ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/Forms/CiresonIntegrationForm.xaml.cs create mode 100644 ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/Forms/DLLForm.xaml create mode 100644 ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/Forms/DLLForm.xaml.cs create mode 100644 ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/Forms/FileAttachmentForm.xaml create mode 100644 ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/Forms/FileAttachmentForm.xaml.cs create mode 100644 ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/Forms/GeneralSettingsForm.xaml create mode 100644 ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/Forms/GeneralSettingsForm.xaml.cs create mode 100644 ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/Forms/KeywordsForm.xaml create mode 100644 ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/Forms/KeywordsForm.xaml.cs create mode 100644 ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/Forms/MultipleMailboxes.xaml create mode 100644 ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/Forms/MultipleMailboxes.xaml.cs create mode 100644 ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/Forms/ProcessingLogicForm.xaml create mode 100644 ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/Forms/ProcessingLogicForm.xaml.cs create mode 100644 ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/Forms/SCOMIntegrationForm.xaml create mode 100644 ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/Forms/SCOMIntegrationForm.xaml.cs create mode 100644 ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/Forms/TemplateForm.xaml create mode 100644 ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/Forms/TemplateForm.xaml.cs create mode 100644 ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/Properties/AssemblyInfo.cs create mode 100644 ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/SMLetsExchangeConnectorSettingsUI.csproj create mode 100644 ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/Validation/SelectionValidationRule.cs create mode 100644 ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/obj/Debug/DesignTimeResolveAssemblyReferences.cache create mode 100644 ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache create mode 100644 ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/obj/Debug/Forms/AboutForm.g.i.cs create mode 100644 ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/obj/Debug/Forms/AnnouncementsForm.g.i.cs create mode 100644 ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/obj/Debug/Forms/ArtificialIntelligence.g.i.cs create mode 100644 ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/obj/Debug/Forms/AzureCognitiveServices.g.i.cs create mode 100644 ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/obj/Debug/Forms/CiresonIntegrationForm.g.i.cs create mode 100644 ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/obj/Debug/Forms/DLLForm.g.i.cs create mode 100644 ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/obj/Debug/Forms/FileAttachmentForm.g.i.cs create mode 100644 ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/obj/Debug/Forms/GeneralSettingsForm.g.i.cs create mode 100644 ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/obj/Debug/Forms/KeywordsForm.g.i.cs create mode 100644 ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/obj/Debug/Forms/MultipleMailboxes.g.i.cs create mode 100644 ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/obj/Debug/Forms/ProcessingLogicForm.g.i.cs create mode 100644 ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/obj/Debug/Forms/SCOMIntegrationForm.g.i.cs create mode 100644 ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/obj/Debug/Forms/TemplateForm - Copy.g.i.cs create mode 100644 ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/obj/Debug/Forms/TemplateForm.g.i.cs create mode 100644 ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/obj/Debug/Forms/UserControl1.g.i.cs create mode 100644 ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/obj/Debug/GeneratedInternalTypeHelper.g.i.cs create mode 100644 ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/obj/Debug/SMLetsExchangeConnectorSettingsUI.csproj.FileListAbsolute.txt create mode 100644 ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/obj/Debug/SMLetsExchangeConnectorSettingsUI_MarkupCompile.i.cache create mode 100644 ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/obj/Debug/SMLetsExchangeConnectorSettingsUI_MarkupCompile.i.lref create mode 100644 ManagementPack/2016/dependencies/Microsoft.EnterpriseManagement.Core.dll create mode 100644 ManagementPack/2016/dependencies/Microsoft.EnterpriseManagement.ServiceManager.Application.Common.dll create mode 100644 ManagementPack/2016/dependencies/Microsoft.EnterpriseManagement.ServiceManager.SharedResources.dll create mode 100644 ManagementPack/2016/dependencies/Microsoft.EnterpriseManagement.ServiceManager.UI.Console.mp create mode 100644 ManagementPack/2016/dependencies/Microsoft.EnterpriseManagement.UI.Controls.dll create mode 100644 ManagementPack/2016/dependencies/Microsoft.EnterpriseManagement.UI.ExtendedControls.dll create mode 100644 ManagementPack/2016/dependencies/Microsoft.EnterpriseManagement.UI.FormsInfra.dll create mode 100644 ManagementPack/2016/dependencies/Microsoft.EnterpriseManagement.UI.Foundation.dll create mode 100644 ManagementPack/2016/dependencies/Microsoft.EnterpriseManagement.UI.SMControls.dll create mode 100644 ManagementPack/2016/dependencies/Microsoft.EnterpriseManagement.UI.SdkDataAccess.dll create mode 100644 ManagementPack/2016/dependencies/Microsoft.EnterpriseManagement.UI.WpfWizardFramework.dll create mode 100644 ManagementPack/2016/dependencies/Microsoft.SystemCenter.Library.mp create mode 100644 ManagementPack/2016/dependencies/PresentationCore.dll create mode 100644 ManagementPack/2016/dependencies/PresentationFramework.dll create mode 100644 ManagementPack/2016/dependencies/ProblemManagement.mpb create mode 100644 ManagementPack/2016/dependencies/System.AdminItem.Library.mp create mode 100644 ManagementPack/2016/dependencies/System.Core.dll create mode 100644 ManagementPack/2016/dependencies/System.Data.DataSetExtensions.dll create mode 100644 ManagementPack/2016/dependencies/System.Data.dll create mode 100644 ManagementPack/2016/dependencies/System.Library.mp create mode 100644 ManagementPack/2016/dependencies/System.Windows.Presentation.dll create mode 100644 ManagementPack/2016/dependencies/System.WorkItem.Incident.Library.mp create mode 100644 ManagementPack/2016/dependencies/System.WorkItem.Problem.Library.mp create mode 100644 ManagementPack/2016/dependencies/System.WorkItem.ReleaseRecord.Library.mp create mode 100644 ManagementPack/2016/dependencies/System.WorkItem.ServiceRequest.Library.mp create mode 100644 ManagementPack/2016/dependencies/System.XML.dll create mode 100644 ManagementPack/2016/dependencies/System.Xaml.dll create mode 100644 ManagementPack/2016/dependencies/System.Xml.Linq.dll create mode 100644 ManagementPack/2016/dependencies/WPFToolKit.dll create mode 100644 ManagementPack/2016/dependencies/WindowsBase.dll delete mode 100644 docs/images/CreateACustomMPSettingsPane/30.PNG diff --git a/ManagementPack/2016/SMLets.Exchange.Connector.sln b/ManagementPack/2016/SMLets.Exchange.Connector.sln new file mode 100644 index 00000000..3ecf27ec --- /dev/null +++ b/ManagementPack/2016/SMLets.Exchange.Connector.sln @@ -0,0 +1,36 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 14 +VisualStudioVersion = 14.0.24720.0 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{D4B43EB3-688B-4EEE-86BD-088F0B28ABB3}") = "SMLets.Exchange.Connector", "SMLets.Exchange.Connector\SMLets.Exchange.Connector.mpproj", "{A76E19FA-9DAF-4590-ADE6-3F0B9646FB29}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SMLetsExchangeConnectorSettingsUI", "SMLetsExchangeConnectorSettingsUI\SMLetsExchangeConnectorSettingsUI.csproj", "{54FBBB67-B2BA-44E4-AB59-06A7FDEF5CF5}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {A76E19FA-9DAF-4590-ADE6-3F0B9646FB29}.Debug|Any CPU.ActiveCfg = Debug|x86 + {A76E19FA-9DAF-4590-ADE6-3F0B9646FB29}.Debug|x86.ActiveCfg = Debug|x86 + {A76E19FA-9DAF-4590-ADE6-3F0B9646FB29}.Debug|x86.Build.0 = Debug|x86 + {A76E19FA-9DAF-4590-ADE6-3F0B9646FB29}.Release|Any CPU.ActiveCfg = Release|x86 + {A76E19FA-9DAF-4590-ADE6-3F0B9646FB29}.Release|x86.ActiveCfg = Release|x86 + {A76E19FA-9DAF-4590-ADE6-3F0B9646FB29}.Release|x86.Build.0 = Release|x86 + {54FBBB67-B2BA-44E4-AB59-06A7FDEF5CF5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {54FBBB67-B2BA-44E4-AB59-06A7FDEF5CF5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {54FBBB67-B2BA-44E4-AB59-06A7FDEF5CF5}.Debug|x86.ActiveCfg = Debug|Any CPU + {54FBBB67-B2BA-44E4-AB59-06A7FDEF5CF5}.Debug|x86.Build.0 = Debug|Any CPU + {54FBBB67-B2BA-44E4-AB59-06A7FDEF5CF5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {54FBBB67-B2BA-44E4-AB59-06A7FDEF5CF5}.Release|Any CPU.Build.0 = Release|Any CPU + {54FBBB67-B2BA-44E4-AB59-06A7FDEF5CF5}.Release|x86.ActiveCfg = Release|Any CPU + {54FBBB67-B2BA-44E4-AB59-06A7FDEF5CF5}.Release|x86.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/ManagementPack/2016/SMLets.Exchange.Connector/Images/164x146.png b/ManagementPack/2016/SMLets.Exchange.Connector/Images/164x146.png new file mode 100644 index 0000000000000000000000000000000000000000..0ead346dd02e36c6356393d62e358744a9dd1bb5 GIT binary patch literal 36676 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 literal 0 HcmV?d00001 diff --git a/ManagementPack/2016/SMLets.Exchange.Connector/SMLets.Exchange.Connector.mpproj b/ManagementPack/2016/SMLets.Exchange.Connector/SMLets.Exchange.Connector.mpproj new file mode 100644 index 00000000..690bf45a --- /dev/null +++ b/ManagementPack/2016/SMLets.Exchange.Connector/SMLets.Exchange.Connector.mpproj @@ -0,0 +1,113 @@ + + + + Debug + {a76e19fa-9daf-4590-ade6-3f0b9646fb29} + SMLets.Exchange.Connector + SMLets.Exchange.Connector + SMLets.Exchange.Connector + 1.0.0.0 + v7.0.2 + SM + 1.1.0.0 + + + true + bin\Debug\ + True + Adamantly Adhoc + AdhocAdam, 2018. + False + keypairs\smletsExchangeConnectorKeyPair.snk + + + false + bin\Release\ + false + MyCompany + Copyright (c) MyCompany. All rights reserved. + false + + + + + + + + Code + + + + + SMLetsExchangeConnectorSettingsUI + SMLetsExchangeConnectorSettingsUI.dll + ..\SMLetsExchangeConnectorSettingsUI\bin\Debug\SMLetsExchangeConnectorSettingsUI.dll + True + True + + + + + Content + + + Content + + + + + ..\dependencies\Microsoft.EnterpriseManagement.ServiceManager.UI.Console.mp + Console + 7.5.7487.0 + False + + + ..\dependencies\Microsoft.SystemCenter.Library.mp + SC + 7.0.8437.0 + False + + + ..\dependencies\System.AdminItem.Library.mp + SAL + 7.5.8501.0 + False + + + ..\dependencies\System.Library.mp + System + 7.5.8501.0 + False + + + ..\dependencies\System.WorkItem.Incident.Library.mp + Incident + 7.5.7487.0 + False + + + ..\dependencies\System.WorkItem.Problem.Library.mp + Problem + 7.5.7487.0 + False + + + ..\dependencies\System.WorkItem.ReleaseRecord.Library.mp + ReleaseRecord + 7.5.7487.0 + False + + + ..\dependencies\System.WorkItem.ServiceRequest.Library.mp + ServiceRequest + 7.5.7487.0 + False + + + + + Content + + + + \ No newline at end of file diff --git a/ManagementPack/2016/SMLets.Exchange.Connector/SMLets.Exchange.Connector.mpproj.user b/ManagementPack/2016/SMLets.Exchange.Connector/SMLets.Exchange.Connector.mpproj.user new file mode 100644 index 00000000..38147b7f --- /dev/null +++ b/ManagementPack/2016/SMLets.Exchange.Connector/SMLets.Exchange.Connector.mpproj.user @@ -0,0 +1,12 @@ + + + + 2.0.2016.6 + True + None + + + + ProjectOnly + + diff --git a/ManagementPack/2016/SMLets.Exchange.Connector/Settings.mpx b/ManagementPack/2016/SMLets.Exchange.Connector/Settings.mpx new file mode 100644 index 00000000..98a71ea0 --- /dev/null +++ b/ManagementPack/2016/SMLets.Exchange.Connector/Settings.mpx @@ -0,0 +1,1207 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SMLets.Exchange.Connector + 2.0.0.0 + 446c13d5880992f3 + + + + + + + Console!SdkDataAccessAssembly + Microsoft.EnterpriseManagement.UI.SdkDataAccess.ConsoleTaskHandler + + SMLetsExchangeConnectorSettingsUI + SMLetsExchangeConnectorSettingsUI.AdminTaskHandler + + + + + + + + + + + + + + SMLets Exchange Connector + Provides centralized, persistent settings for the Powershell based SMLets Exchange Connector + + + SMLets Exchange Connector Settings + Defines the settings for the open source SMLets based Exchange Connector + + + Additional Mailbox + Defines additional mailboxes within the SMLets Exchange Connector + + + Edit + View or edit the settings for the open source SMLets based Exchange Connector + + + + + + + + + + + \ No newline at end of file diff --git a/ManagementPack/2016/SMLets.Exchange.Connector/keypairs/publickeytoken.txt b/ManagementPack/2016/SMLets.Exchange.Connector/keypairs/publickeytoken.txt new file mode 100644 index 00000000..48f4e8a1 --- /dev/null +++ b/ManagementPack/2016/SMLets.Exchange.Connector/keypairs/publickeytoken.txt @@ -0,0 +1 @@ +Public key token is 446c13d5880992f3 \ No newline at end of file diff --git a/ManagementPack/2016/SMLets.Exchange.Connector/keypairs/smletsExchangeConnectorKeyPair.pubkey b/ManagementPack/2016/SMLets.Exchange.Connector/keypairs/smletsExchangeConnectorKeyPair.pubkey new file mode 100644 index 0000000000000000000000000000000000000000..ba1fe34c7acda4e1c61374510436c1499f42de1a GIT binary patch literal 160 zcmV;R0AK$ABme*efB*oL000060ssI2Bme+XQ$aBR1ONa500979(KTmXrT<`x6wAEO z1lbUvw~~_zB+y&RA~iV}#xgIWB|NuoO>>~=(As_>~=(As_1a*+%tI;JH$xpzfHq(SheQN_JSRQzZXk(^*$;Teuv;}k z&K4NGI-Gy2YF~Umu6SeL;T_0S_l8khHz$brqu}iuUob(2V z$KTosYft|nViUQA7@7E7+!*I2PYR^zgMCnD`gq(wSeEg>JV0R2^PmR`RVy>0tt zqj4m+1ovU{myW9`68zbA(_Z7I0Wy1-RXPFm?Xo~xG6a}77j=s7HO7~E3D i(BHwV9O|ye!zuRtug=4UKXh8(C75E{1%s@)5^Cm=@v literal 0 HcmV?d00001 diff --git a/ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/AdminSettingsWizardData.cs b/ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/AdminSettingsWizardData.cs new file mode 100644 index 00000000..9c40f5d6 --- /dev/null +++ b/ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/AdminSettingsWizardData.cs @@ -0,0 +1,3121 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Microsoft.EnterpriseManagement.UI.WpfWizardFramework; +using System.ComponentModel; +using Microsoft.EnterpriseManagement.UI.DataModel; +using Microsoft.EnterpriseManagement.Common; +using Microsoft.EnterpriseManagement; +using Microsoft.EnterpriseManagement.Configuration; +using Microsoft.Win32; +using Microsoft.EnterpriseManagement.ConnectorFramework; + + +namespace SMLetsExchangeConnectorSettingsUI +{ + class AdminSettingWizardData : WizardData + { + #region Variable Declaration + //looking to collapse some/all of these quickly? CTRL + MM + //Yes, that's really two M back to back + + //general settings page + private String strscsmMGMTServer = String.Empty; + private String strWorkflowEmailAddress = String.Empty; + private Boolean boolEnableAutodiscover = false; + private String strAutodiscoverURL = String.Empty; + + //paths + private String strEWSFilePath = String.Empty; + private String strMimeKitFilePath = String.Empty; + private String strPIIRegexFilePath = String.Empty; + private String strCiresonHTMLSuggestionTemplatesPath = String.Empty; + private String strCustomEvents = String.Empty; + + //processing logic + private Boolean boolCreateUsersInCMDB = false; + private Boolean boolIncludeWholeEmail = false; + private Boolean boolAttachEmailToWorkItem = false; + private Boolean boolProcessADGroupVote = false; + private Boolean boolProcessMergeReplies = false; + private Boolean boolMailboxRedirection = false; + private Boolean boolEnforceSupportGroupTake = false; + private Boolean boolProcessClosedWorkItemsToNewWorkItems = false; + private Boolean boolChangeIncidentStatusOnReply = false; + private Boolean boolRemovePII = false; + private String strDynamicAnalyst = String.Empty; + + //processing logic - additional mail types + private Boolean boolProcessCalendarAppointments = false; + private Boolean boolProcessEncryptedEmails = false; + private Boolean boolProcessDigitallySignedEmails = false; + private String strCertStore = String.Empty; + + //processing logic - additional mail types + private String strExternalIRCommentPrivate = String.Empty; + private String strExternalSRCommentPrivate = String.Empty; + private String strExternalIRCommentType = String.Empty; + private String strExternalSRCommentType = String.Empty; + + //processing logic, lists: Incident Status based on Who Replied + ManagementPackEnumeration defaultIncidentStatusOnAUReplyEnum; + ManagementPackEnumeration defaultIncidentStatusOnATReplyEnum; + ManagementPackEnumeration defaultIncidentStatusOnRelReplyEnum; + + //processing logic, lists: Incident Resolution, Service Request, and Problem Category + ManagementPackEnumeration defaultIncidentResolutionCategoryEnum; + ManagementPackEnumeration defaultServiceRequestImplementationCategoryEnum; + ManagementPackEnumeration defaultProblemResolutionCategoryEnum; + + //processing logic, lists: Support Groups for Change Request, Manual Activity, and Problem Extended Classes + ManagementPackProperty manualActivitySupportGroupExtensionEnum; + ManagementPackProperty changeRequestSupportGroupExtensionEnum; + ManagementPackProperty problemSupportGroupExtensionEnum; + + //file attachments + private String strMinFileSize = "0"; + private Boolean boolMaxFileSizeEnabled = false; + + //templates - default work item + private String strDefaultWorkItem = String.Empty; + + //templates - Incident, Service Request, Change, and Problem + ManagementPackObjectTemplate defaultIncidentTemplate; + ManagementPackObjectTemplate defaultServiceRequestTemplate; + ManagementPackObjectTemplate defaultChangeRequestTemplate; + ManagementPackObjectTemplate defaultProblemTemplate; + + //mailbox redirection + private String[] multipleMailboxesToAdd; + private String[] multipleMailboxesToRemove; + + //keywords + private String strFromKW = String.Empty; + private String strAcknowledgeKW = String.Empty; + private String strReactivateKW = String.Empty; + private String strResolvedKW = String.Empty; + private String strClosedKW = String.Empty; + private String strHoldKW = String.Empty; + private String strTakeKW = String.Empty; + private String strCancelledKW = String.Empty; + private String strCompletedKW = String.Empty; + private String strSkippedKW = String.Empty; + private String strApproveKW = String.Empty; + private String strRejectKW = String.Empty; + private String strHealthKW = String.Empty; + private String strAnnouncementKW = String.Empty; + private String strPrivateKW = String.Empty; + + //cireson + private Boolean boolCiresonMPExists = false; + private String strCiresonPortalURL = String.Empty; + private Int32 strMinWordsToMatchToSuggestRO = 0; + private Int32 strMinWordCountToSuggestKA = 0; + private Boolean boolEnableAnnouncementIntegration = false; + private Boolean boolEnableSCSMAnnouncements = false; + private Boolean boolEnableCiresonAnnouncements = false; + private Boolean boolEnableCiresonIntegration = false; + private Boolean boolEnableCiresonKBSearch = false; + private Boolean boolEnableCiresonROSearch = false; + private Boolean boolEnableCiresonFirstResponseDateOnSuggestions = false; + + //announcements + private String strAuthorizedAnnouncer = String.Empty; + private String scsmApprovedAnnouncers = String.Empty; + private String strLowPriorityAnnouncementKW = String.Empty; + private String strMedPriorityAnnouncementKW = String.Empty; + private String strHighPriorityAnnouncementKW = String.Empty; + private String strLowPriorityExpInHours = "0"; + private String strMedPriorityExpInHours = "0"; + private String strHighPriorityExpInHours = "0"; + private IDataItem scsmApprovedAnnouncementGroup; + + //scom + private Boolean boolEnableSCOMIntegration = false; + private String strAuthSCOMApproverType = String.Empty; + private String strSCOMmmgtServer = String.Empty; + private String strAuthorizedSCOMUsers = String.Empty; + private IDataItem scomApprovedGroup; + + //artificial intelligence, option 0: Disabled + private Boolean boolArtificialIntelligence = false; + + //artificial intelligence, option 1: ACS + private Boolean boolEnableAzureCognitiveServices = false; + private Boolean boolEnableACSForKA = false; + private Boolean boolEnableACSForRO = false; + private Boolean boolEnableACSForPriorityScoring = false; + private String strAzureRegion = String.Empty; + private String strazureCognitiveServicesAPIKey = String.Empty; + private String strBoundaries = String.Empty; + ManagementPackProperty incidentACSSentimentExtensionDec; + ManagementPackProperty serviceRequestACSSentimentExtensionDec; + private String strMinimumPercentToCreateServiceRequest = "0"; + ManagementPackEnumeration incidentImpactEnum; + ManagementPackEnumeration incidentUrgencyEnum; + ManagementPackEnumeration serviceRequestUrgencyEnum; + ManagementPackEnumeration serviceRequestPriorityEnum; + + //artificial intelligencee, option 2: Keyword matching + private Boolean boolEnableKeywordMatching = false; + private String strKWMatchingRegexPattern = String.Empty; + private String strKWWorkItemOverride = String.Empty; + + //artificial intelligencee, option 3: Azure Machine Learning + private Boolean boolEnableAzureMachineLearning = false; + private String strAMLAPIKey = String.Empty; + private String strAMLWebServiceURL = String.Empty; + private String strAMLWIConfidenceClassName = String.Empty; + private String strAMLClassificationConfidenceClassName = String.Empty; + private String strAMLSupportGroupConfidenceClassName = String.Empty; + private String decAMLWIMinConfidence = "0"; + private String decAMLClassificationMinConfidence = "0"; + private String decAMLSupportGroupMinConfidence = "0"; + + //AML incident custom decimal extensions + ManagementPackProperty incidentAMLWIConfidenceExtensionDec; + ManagementPackProperty incidentAMLWITypePredictionExtensionGUID; + ManagementPackProperty incidentAMLClassifcationConfidenceExtensionDec; + ManagementPackProperty incidentAMLSupportGroupIConfidenceExtensionDec; + ManagementPackProperty incidentAMLClassificationPredictionExtensionEnum; + ManagementPackProperty incidentAMLSupportGroupPredictionExtensionEnum; + + //AML service request custom decimal extensions + ManagementPackProperty serviceRequestAMLWIConfidenceExtensionDec; + ManagementPackProperty serviceRequestAMLWITypePredictionExtensionGUID; + ManagementPackProperty serviceRequestAMLClassifcationConfidenceExtensionDec; + ManagementPackProperty serviceRequestAMLSupportGroupIConfidenceExtensionDec; + ManagementPackProperty serviceRequestAMLClassificationPredictionExtensionEnum; + ManagementPackProperty serviceRequestAMLSupportGroupPredictionExtensionEnum; + + //azure translate + private Boolean boolEnableAzureTranslate = false; + private String strAzureTranslateAPIKey = String.Empty; + private String strAzureTranslateDefaultLanguageCode = String.Empty; + + //management pack guid + private Guid guidEnterpriseManagementObjectID = Guid.Empty; + #endregion + + //notify on property changed + //https://docs.microsoft.com/en-us/dotnet/framework/wpf/data/how-to-implement-property-change-notification + public event PropertyChangedEventHandler PropertyChanged; + protected void NotifyPropertyChanged(string propchanger) + { + PropertyChangedEventHandler handler = PropertyChanged; + if (handler != null) + { + handler(this, new PropertyChangedEventArgs(propchanger)); + } + } + + #region Variable Get/Set. + //WPF Forms bind to these and they are referenced in load/save. + //Apart from the slightly different names in their initial declaration above + //these can be told apart as they all begin with Capital letters + + //general settings page + public String SCSMmanagementServer + { + get + { + return this.strscsmMGMTServer; + } + set + { + if (this.strscsmMGMTServer != value) + { + this.strscsmMGMTServer = value; + } + } + } + + public String WorkflowEmailAddress + { + get + { + return this.strWorkflowEmailAddress; + } + set + { + if (this.strWorkflowEmailAddress != value) + { + this.strWorkflowEmailAddress = value; + } + } + } + + public Boolean IsAutodiscoverEnabled + { + get + { + return this.boolEnableAutodiscover; + } + set + { + if (this.boolEnableAutodiscover != value) + { + this.boolEnableAutodiscover = value; + } + } + } + + public String ExchangeAutodiscoverURL + { + get + { + return this.strAutodiscoverURL; + } + set + { + if (this.strAutodiscoverURL != value) + { + this.strAutodiscoverURL = value; + } + } + } + + //file attachments + public Boolean IsMaxFileSizeAttachmentsEnabled + { + get + { + return this.boolMaxFileSizeEnabled; + } + set + { + if (this.boolMaxFileSizeEnabled != value) + { + this.boolMaxFileSizeEnabled = value; + } + } + } + + public String MinFileAttachmentSize + { + get + { + return this.strMinFileSize; + } + set + { + if (this.strMinFileSize != value) + { + this.strMinFileSize = value; + } + } + } + + //file paths + public String EWSFilePath + { + get + { + return this.strEWSFilePath; + } + set + { + if (this.strEWSFilePath != value) + { + this.strEWSFilePath = value; + } + } + } + + public String MimeKitFilePath + { + get + { + return this.strMimeKitFilePath; + } + set + { + if (this.strMimeKitFilePath != value) + { + this.strMimeKitFilePath = value; + } + } + } + + public String PIIRegexFilePath + { + get + { + return this.strPIIRegexFilePath; + } + set + { + if (this.strPIIRegexFilePath != value) + { + this.strPIIRegexFilePath = value; + } + } + } + + public String HTMLSuggestionTemplatesFilePath + { + get + { + return this.strCiresonHTMLSuggestionTemplatesPath; + } + set + { + if (this.strCiresonHTMLSuggestionTemplatesPath != value) + { + this.strCiresonHTMLSuggestionTemplatesPath = value; + } + } + } + + public String CustomEventsFilePath + { + get + { + return this.strCustomEvents; + } + set + { + if (this.strCustomEvents != value) + { + this.strCustomEvents = value; + } + } + } + + //templates + public ManagementPackObjectTemplate DefaultIncidentTemplate + { + get + { + return defaultIncidentTemplate; + } + set + { + if (this.defaultIncidentTemplate != value) + { + defaultIncidentTemplate = value; + NotifyPropertyChanged("defaultIncidentTemplateGUID"); + } + } + } + public IList IncidentTemplates { get; set; } + public ManagementPackObjectTemplate DefaultServiceRequestTemplate + { + get + { + return defaultServiceRequestTemplate; + } + set + { + if (this.defaultServiceRequestTemplate != value) + { + defaultServiceRequestTemplate = value; + NotifyPropertyChanged("defaultServiceRequestTemplateGUID"); + } + } + } + public IList ServiceRequestTemplates { get; set; } + public ManagementPackObjectTemplate DefaultChangeRequestTemplate + { + get + { + return defaultChangeRequestTemplate; + } + set + { + if (this.defaultChangeRequestTemplate != value) + { + defaultChangeRequestTemplate = value; + NotifyPropertyChanged("defaultChangeRequestTemplateGUID"); + } + } + } + public IList ChangeRequestTemplates { get; set; } + public ManagementPackObjectTemplate DefaultProblemTemplate + { + get + { + return defaultProblemTemplate; + } + set + { + if (this.defaultProblemTemplate != value) + { + defaultProblemTemplate = value; + NotifyPropertyChanged("defaultProblemTemplateGUID"); + } + } + } + public IList ProblemTemplates { get; set; } + + //processing logic + public Boolean CreateUsersNotFoundtInCMDB + { + get + { + return this.boolCreateUsersInCMDB; + } + set + { + if (this.boolCreateUsersInCMDB != value) + { + this.boolCreateUsersInCMDB = value; + } + } + } + + public Boolean IncludeWholeEmail + { + get + { + return this.boolIncludeWholeEmail; + } + set + { + if (this.boolIncludeWholeEmail != value) + { + this.boolIncludeWholeEmail = value; + } + } + } + + public Boolean AttachEmailToWorkItem + { + get + { + return this.boolAttachEmailToWorkItem; + } + set + { + if (this.boolAttachEmailToWorkItem != value) + { + this.boolAttachEmailToWorkItem = value; + } + } + } + + public Boolean ProcessCalendarAppointments + { + get + { + return this.boolProcessCalendarAppointments; + } + set + { + if (this.boolProcessCalendarAppointments != value) + { + this.boolProcessCalendarAppointments = value; + } + } + } + + public Boolean ProcessMergeReplies + { + get + { + return this.boolProcessMergeReplies; + } + set + { + if (this.boolProcessMergeReplies != value) + { + this.boolProcessMergeReplies = value; + } + } + } + + public Boolean ProcessADGroupVote + { + get + { + return this.boolProcessADGroupVote; + } + set + { + if (this.boolProcessADGroupVote != value) + { + this.boolProcessADGroupVote = value; + } + } + } + + public Boolean EnforceSupportGroupTake + { + get + { + return this.boolEnforceSupportGroupTake; + } + set + { + if (this.boolEnforceSupportGroupTake != value) + { + this.boolEnforceSupportGroupTake = value; + } + } + } + + public Boolean ProcessClosedWorkItemsToNewWorkItems + { + get + { + return this.boolProcessClosedWorkItemsToNewWorkItems; + } + set + { + if (this.boolProcessClosedWorkItemsToNewWorkItems != value) + { + this.boolProcessClosedWorkItemsToNewWorkItems = value; + } + } + } + + public Boolean ChangeIncidentStatusOnReply + { + get + { + return this.boolChangeIncidentStatusOnReply; + } + set + { + if (this.boolChangeIncidentStatusOnReply != value) + { + this.boolChangeIncidentStatusOnReply = value; + } + } + } + + public Boolean RemovePII + { + get + { + return this.boolRemovePII; + } + set + { + if (this.boolRemovePII != value) + { + this.boolRemovePII = value; + } + } + } + + public String DynamicAnalystAssignment + { + get + { + return this.strDynamicAnalyst; + } + set + { + if (this.strDynamicAnalyst != value) + { + this.strDynamicAnalyst = value; + } + } + } + + public Boolean ProcessEncryptedEmails + { + get + { + return this.boolProcessEncryptedEmails; + } + set + { + if (this.boolProcessEncryptedEmails != value) + { + this.boolProcessEncryptedEmails = value; + } + } + } + + public Boolean ProcessDigitallySignedEmails + { + get + { + return this.boolProcessDigitallySignedEmails; + } + set + { + if (this.boolProcessDigitallySignedEmails != value) + { + this.boolProcessDigitallySignedEmails = value; + } + } + } + + public String CertificateStore + { + get + { + return this.strCertStore; + } + set + { + if (this.strCertStore != value) + { + this.strCertStore = value; + } + } + } + + public String ExternalIRCommentPrivate + { + get + { + return this.strExternalIRCommentPrivate; + } + set + { + if (this.strExternalIRCommentPrivate != value) + { + this.strExternalIRCommentPrivate = value; + } + } + } + + public String ExternalIRCommentType + { + get + { + return this.strExternalIRCommentType; + } + set + { + if (this.strExternalIRCommentType != value) + { + this.strExternalIRCommentType = value; + } + } + } + + public String ExternalSRCommentPrivate + { + get + { + return this.strExternalSRCommentPrivate; + } + set + { + if (this.strExternalSRCommentPrivate != value) + { + this.strExternalSRCommentPrivate = value; + } + } + } + + public String ExternalSRCommentType + { + get + { + return this.strExternalSRCommentType; + } + set + { + if (this.strExternalSRCommentType != value) + { + this.strExternalSRCommentType = value; + } + } + } + + //processing logic, support group extensions + public IList ManualActivityEnumExtensions { get; set; } + public IList ChangeRequestEnumExtensions { get; set; } + public IList ProblemEnumExtensions { get; set; } + public ManagementPackProperty ManualActivitySupportGroupExtensionEnum + { + get + { + return manualActivitySupportGroupExtensionEnum; + } + set + { + if (this.manualActivitySupportGroupExtensionEnum != value) + { + manualActivitySupportGroupExtensionEnum = value; + } + } + } + public ManagementPackProperty ProblemSupportGroupExtensionEnum + { + get + { + return problemSupportGroupExtensionEnum; + } + set + { + if (this.problemSupportGroupExtensionEnum != value) + { + problemSupportGroupExtensionEnum = value; + } + } + } + public ManagementPackProperty ChangeRequestSupportGroupExtensionEnum + { + get + { + return changeRequestSupportGroupExtensionEnum; + } + set + { + if (this.changeRequestSupportGroupExtensionEnum != value) + { + changeRequestSupportGroupExtensionEnum = value; + } + } + } + + //processing logic, change incident status who replied + public IList IncidentStatusEnums { get; set; } + public ManagementPackEnumeration DefaultIncidentStatusOnAUReplyEnum + { + get + { + return defaultIncidentStatusOnAUReplyEnum; + } + set + { + if (this.defaultIncidentStatusOnAUReplyEnum != value) + { + defaultIncidentStatusOnAUReplyEnum = value; + NotifyPropertyChanged("incidentStatusOnAffectedUserReply"); + } + } + } + public ManagementPackEnumeration DefaultIncidentStatusOnATReplyEnum + { + get + { + return defaultIncidentStatusOnATReplyEnum; + } + set + { + if (this.defaultIncidentStatusOnATReplyEnum != value) + { + defaultIncidentStatusOnATReplyEnum = value; + NotifyPropertyChanged("incidentStatusOnAssignedToReply"); + } + } + } + public ManagementPackEnumeration DefaultIncidentStatusOnRelReplyEnum + { + get + { + return defaultIncidentStatusOnRelReplyEnum; + } + set + { + if (this.defaultIncidentStatusOnRelReplyEnum != value) + { + defaultIncidentStatusOnRelReplyEnum = value; + NotifyPropertyChanged("incidentStatusOnRelatedUserReply"); + } + } + } + + //processing logic, default resolution categories + public ManagementPackEnumeration DefaultIncidentResolutionCategoryEnum + { + get + { + return defaultIncidentResolutionCategoryEnum; + } + set + { + if (this.defaultIncidentResolutionCategoryEnum != value) + { + defaultIncidentResolutionCategoryEnum = value; + NotifyPropertyChanged("incidentResolutionCategory"); + } + } + } + public IList IncidentResolutionCategoryEnums { get; set; } + public ManagementPackEnumeration DefaultServiceRequestImplementationCategoryEnum + { + get + { + return defaultServiceRequestImplementationCategoryEnum; + } + set + { + if (this.defaultServiceRequestImplementationCategoryEnum != value) + { + defaultServiceRequestImplementationCategoryEnum = value; + NotifyPropertyChanged("serviceRequestImplementationCategory"); + } + } + } + public IList ServiceRequestImplementationCategoryEnums { get; set; } + public ManagementPackEnumeration DefaultProblemResolutionCategoryEnum + { + get + { + return defaultProblemResolutionCategoryEnum; + } + set + { + if (this.defaultProblemResolutionCategoryEnum != value) + { + defaultProblemResolutionCategoryEnum = value; + NotifyPropertyChanged("problemResolutionCategory"); + } + } + } + public IList ProblemResolutionCategoryEnums { get; set; } + + //multi-mailbox + public Boolean UseMailboxRedirection + { + get + { + return this.boolMailboxRedirection; + } + set + { + if (this.boolMailboxRedirection != value) + { + this.boolMailboxRedirection = value; + } + } + } + public String[] MultipleMailboxesToAdd + { + get + { + return this.multipleMailboxesToAdd; + } + set + { + if (this.multipleMailboxesToAdd != value) + { + this.multipleMailboxesToAdd = value; + } + } + } + public IList AdditionalMailboxes { get; set; } + public String[] MultipleMailboxesToRemove + { + get + { + return this.multipleMailboxesToRemove; + } + set + { + if (this.multipleMailboxesToRemove != value) + { + this.multipleMailboxesToRemove = value; + } + } + } + + //keywords + public String KeywordFrom + { + get + { + return this.strFromKW; + } + set + { + if (this.strFromKW != value) + { + this.strFromKW = value; + } + } + } + + public String KeywordAcknowledge + { + get + { + return this.strAcknowledgeKW; + } + set + { + if (this.strAcknowledgeKW != value) + { + this.strAcknowledgeKW = value; + } + } + } + + public String KeywordReactivate + { + get + { + return this.strReactivateKW; + } + set + { + if (this.strReactivateKW != value) + { + this.strReactivateKW = value; + } + } + } + + public String KeywordResolve + { + get + { + return this.strResolvedKW; + } + set + { + if (this.strResolvedKW != value) + { + this.strResolvedKW = value; + } + } + } + + public String KeywordClose + { + get + { + return this.strClosedKW; + } + set + { + if (this.strClosedKW != value) + { + this.strClosedKW = value; + } + } + } + + public String KeywordHold + { + get + { + return this.strHoldKW; + } + set + { + if (this.strHoldKW != value) + { + this.strHoldKW = value; + } + } + } + + public String KeywordTake + { + get + { + return this.strTakeKW; + } + set + { + if (this.strTakeKW != value) + { + this.strTakeKW = value; + } + } + } + + public String KeywordCancel + { + get + { + return this.strCancelledKW; + } + set + { + if (this.strCancelledKW != value) + { + this.strCancelledKW = value; + } + } + } + + public String KeywordComplete + { + get + { + return this.strCompletedKW; + } + set + { + if (this.strCompletedKW != value) + { + this.strCompletedKW = value; + } + } + } + + public String KeywordSkip + { + get + { + return this.strSkippedKW; + } + set + { + if (this.strSkippedKW != value) + { + this.strSkippedKW = value; + } + } + } + + public String KeywordApprove + { + get + { + return this.strApproveKW; + } + set + { + if (this.strApproveKW != value) + { + this.strApproveKW = value; + } + } + } + + public String KeywordReject + { + get + { + return this.strRejectKW; + } + set + { + if (this.strRejectKW != value) + { + this.strRejectKW = value; + } + } + } + + public String KeywordAnnouncement + { + get + { + return this.strAnnouncementKW; + } + set + { + if (this.strAnnouncementKW != value) + { + this.strAnnouncementKW = value; + } + } + } + + public String KeywordPrivate + { + get + { + return this.strPrivateKW; + } + set + { + if (this.strPrivateKW != value) + { + this.strPrivateKW = value; + } + } + } + + public String KeywordHealth + { + get + { + return this.strHealthKW; + } + set + { + if (this.strHealthKW != value) + { + this.strHealthKW = value; + } + } + } + + //cireson + public Boolean IsCiresonPortalMPImported + { + get + { + return this.boolCiresonMPExists; + } + set + { + if (this.boolCiresonMPExists != value) + { + this.boolCiresonMPExists = value; + } + } + } + + public Boolean IsCiresonIntegrationEnabled + { + get + { + return this.boolEnableCiresonIntegration; + } + set + { + if (this.boolEnableCiresonIntegration != value) + { + this.boolEnableCiresonIntegration = value; + } + } + } + + public Boolean IsCiresonKBSearchEnabled + { + get + { + return this.boolEnableCiresonKBSearch; + } + set + { + if (this.boolEnableCiresonKBSearch != value) + { + this.boolEnableCiresonKBSearch = value; + } + } + } + + public Boolean IsCiresonROSearchEnabled + { + get + { + return this.boolEnableCiresonROSearch; + } + set + { + if (this.boolEnableCiresonROSearch != value) + { + this.boolEnableCiresonROSearch = value; + } + } + } + + public Boolean IsCiresonFirstResponseDateOnSuggestionsEnabled + { + get + { + return this.boolEnableCiresonFirstResponseDateOnSuggestions; + } + set + { + if (this.boolEnableCiresonFirstResponseDateOnSuggestions != value) + { + this.boolEnableCiresonFirstResponseDateOnSuggestions = value; + } + } + } + + public Int32 MinWordCountToSuggestRO + { + get + { + return this.strMinWordsToMatchToSuggestRO; + } + set + { + if (this.strMinWordsToMatchToSuggestRO != value) + { + this.strMinWordsToMatchToSuggestRO = value; + } + } + } + + public Int32 MinWordCountToSuggestKA + { + get + { + return this.strMinWordCountToSuggestKA; + } + set + { + if (this.strMinWordCountToSuggestKA != value) + { + this.strMinWordCountToSuggestKA = value; + } + } + } + + public String CiresonPortalURL + { + get + { + return this.strCiresonPortalURL; + } + set + { + if (this.strCiresonPortalURL != value) + { + this.strCiresonPortalURL = value; + } + } + } + + //announcements + public Boolean IsAnnouncementIntegrationEnabled + { + get + { + return this.boolEnableAnnouncementIntegration; + } + set + { + if (this.boolEnableAnnouncementIntegration != value) + { + this.boolEnableAnnouncementIntegration = value; + } + } + } + + public Boolean IsSCSMAnnouncementsEnabled + { + get + { + return this.boolEnableSCSMAnnouncements; + } + set + { + if (this.boolEnableSCSMAnnouncements != value) + { + this.boolEnableSCSMAnnouncements = value; + } + } + } + + public Boolean IsCiresonAnnouncementsEnabled + { + get + { + return this.boolEnableCiresonAnnouncements; + } + set + { + if (this.boolEnableCiresonAnnouncements != value) + { + this.boolEnableCiresonAnnouncements = value; + } + } + } + + public String SCSMApprovedAnnouncers + { + get + { + return this.scsmApprovedAnnouncers; + } + set + { + if (this.scsmApprovedAnnouncers != value) + { + this.scsmApprovedAnnouncers = value; + } + } + } + + public String AuthorizedAnnouncementApproverType + { + get + { + return this.strAuthorizedAnnouncer; + } + set + { + if (this.strAuthorizedAnnouncer != value) + { + this.strAuthorizedAnnouncer = value; + } + } + } + + public String LowPriorityAnnouncementKeyword + { + get + { + return this.strLowPriorityAnnouncementKW; + } + set + { + if (this.strLowPriorityAnnouncementKW != value) + { + this.strLowPriorityAnnouncementKW = value; + } + } + } + + public String MediumPriorityAnnouncementKeyword + { + get + { + return this.strMedPriorityAnnouncementKW; + } + set + { + if (this.strMedPriorityAnnouncementKW != value) + { + this.strMedPriorityAnnouncementKW = value; + } + } + } + + public String HighPriorityAnnouncementKeyword + { + get + { + return this.strHighPriorityAnnouncementKW; + } + set + { + if (this.strHighPriorityAnnouncementKW != value) + { + this.strHighPriorityAnnouncementKW = value; + } + } + } + + public String LowPriorityExpiresInHours + { + get + { + return this.strLowPriorityExpInHours; + } + set + { + if (this.strLowPriorityExpInHours != value) + { + this.strLowPriorityExpInHours = value; + } + } + } + + public String MediumPriorityExpiresInHours + { + get + { + return this.strMedPriorityExpInHours; + } + set + { + if (this.strMedPriorityExpInHours != value) + { + this.strMedPriorityExpInHours = value; + } + } + } + + public String HighPriorityExpiresInHours + { + get + { + return this.strHighPriorityExpInHours; + } + set + { + if (this.strHighPriorityExpInHours != value) + { + this.strHighPriorityExpInHours = value; + } + } + } + + public IDataItem SCSMApprovedAnnouncementGroup + { + get + { + return this.scsmApprovedAnnouncementGroup; + } + set + { + if (this.scsmApprovedAnnouncementGroup != value) + { + this.scsmApprovedAnnouncementGroup = value; + } + } + } + public String SCSMApprovedGroupDisplayName { get; set; } + public Guid SCSMApprovedGroupGUID { get; set; } + + //scom + public String AuthorizedSCOMApproverType + { + get + { + return this.strAuthSCOMApproverType; + } + set + { + if (this.strAuthSCOMApproverType != value) + { + this.strAuthSCOMApproverType = value; + } + } + } + + public String AuthorizedSCOMUsers + { + get + { + return this.strAuthorizedSCOMUsers; + } + set + { + if (this.strAuthorizedSCOMUsers != value) + { + this.strAuthorizedSCOMUsers = value; + } + } + } + + public Boolean IsSCOMIntegrationEnabled + { + get + { + return this.boolEnableSCOMIntegration; + } + set + { + if (this.boolEnableSCOMIntegration != value) + { + this.boolEnableSCOMIntegration = value; + } + } + } + + public String SCOMServer + { + get + { + return this.strSCOMmmgtServer; + } + set + { + if (this.strSCOMmmgtServer != value) + { + this.strSCOMmmgtServer = value; + } + } + } + + public IDataItem SCOMApprovedGroup + { + get + { + return this.scomApprovedGroup; + } + set + { + if (this.scomApprovedGroup != value) + { + this.scomApprovedGroup = value; + } + } + } + public String SCOMApprovedGroupDisplayName { get; set; } + public Guid SCOMApprovedGroupGUID { get; set; } + + //artificial intelligence, option 0: disabled + public Boolean IsArtificialIntelligenceEnabled + { + get + { + return this.boolArtificialIntelligence; + } + set + { + if (this.boolArtificialIntelligence != value) + { + this.boolArtificialIntelligence = value; + } + } + } + + //artificial intelligence, option 1: ACS + public Boolean IsAzureCognitiveServicesEnabled + { + get + { + return this.boolEnableAzureCognitiveServices; + } + set + { + if (this.boolEnableAzureCognitiveServices != value) + { + this.boolEnableAzureCognitiveServices = value; + } + } + } + + public String ACSRegion + { + get + { + return this.strAzureRegion; + } + set + { + if (this.strAzureRegion != value) + { + this.strAzureRegion = value; + } + } + } + + public String DefaultWorkItem + { + get + { + return this.strDefaultWorkItem; + } + set + { + if (this.strDefaultWorkItem != value) + { + this.strDefaultWorkItem = value; + } + } + } + + public String AzureCognitiveServicesAPIKey + { + get + { + return this.strazureCognitiveServicesAPIKey; + } + set + { + if (this.strazureCognitiveServicesAPIKey != value) + { + this.strazureCognitiveServicesAPIKey = value; + } + } + } + + public String AzureCognitiveServicesBoundaries + { + get + { + return this.strBoundaries; + } + set + { + if (this.strBoundaries != value) + { + this.strBoundaries = value; + } + } + } + + + public ManagementPackProperty ACSIncidentSentimentDecExtension + { + get + { + return incidentACSSentimentExtensionDec; + } + set + { + if (this.incidentACSSentimentExtensionDec != value) + { + incidentACSSentimentExtensionDec = value; + } + } + } + + public ManagementPackProperty ACSServiceRequestSentimentDecExtension + { + get + { + return serviceRequestACSSentimentExtensionDec; + } + set + { + if (this.serviceRequestACSSentimentExtensionDec != value) + { + serviceRequestACSSentimentExtensionDec = value; + } + } + } + + public String MinimumPercentToCreateServiceRequest + { + get + { + return this.strMinimumPercentToCreateServiceRequest; + } + set + { + if (this.strMinimumPercentToCreateServiceRequest != value) + { + this.strMinimumPercentToCreateServiceRequest = value; + } + } + } + + public IList IncidentImpactEnums { get; set; } + public ManagementPackEnumeration IncidentImpactEnum + { + get + { + return incidentImpactEnum; + } + set + { + if (this.incidentImpactEnum != value) + { + incidentImpactEnum = value; + } + } + } + + public IList IncidentUrgencyEnums { get; set; } + public ManagementPackEnumeration IncidentUrgencyEnum + { + get + { + return incidentUrgencyEnum; + } + set + { + if (this.incidentUrgencyEnum != value) + { + incidentUrgencyEnum = value; + } + } + } + + public IList ServiceRequestUrgencyEnums { get; set; } + public ManagementPackEnumeration ServiceRequestUrgencyEnum + { + get + { + return serviceRequestUrgencyEnum; + } + set + { + if (this.serviceRequestUrgencyEnum != value) + { + serviceRequestUrgencyEnum = value; + } + } + } + + public IList ServiceRequestPriorityEnums { get; set; } + public ManagementPackEnumeration ServiceRequestPriorityEnum + { + get + { + return serviceRequestPriorityEnum; + } + set + { + if (this.serviceRequestPriorityEnum != value) + { + serviceRequestPriorityEnum = value; + } + } + } + + public Boolean IsACSForKAEnabled + { + get + { + return this.boolEnableACSForKA; + } + set + { + if (this.boolEnableACSForKA != value) + { + this.boolEnableACSForKA = value; + } + } + } + + public Boolean IsACSForROEnabled + { + get + { + return this.boolEnableACSForRO; + } + set + { + if (this.boolEnableACSForRO != value) + { + this.boolEnableACSForRO = value; + } + } + } + + public Boolean IsACSForPriorityScoringEnabled + { + get + { + return this.boolEnableACSForPriorityScoring; + } + set + { + if (this.boolEnableACSForPriorityScoring != value) + { + this.boolEnableACSForPriorityScoring = value; + } + } + } + + //artificial intelligencee, option 2: Keyword matching + public Boolean IsKeywordMatchingEnabled + { + get + { + return this.boolEnableKeywordMatching; + } + set + { + if (this.boolEnableKeywordMatching != value) + { + this.boolEnableKeywordMatching = value; + } + } + } + + public String KeywordMatchingRegexPattern + { + get + { + return this.strKWMatchingRegexPattern; + } + set + { + if (this.strKWMatchingRegexPattern != value) + { + this.strKWMatchingRegexPattern = value; + } + } + } + + public String KeywordWorkItemTypeOverride + { + get + { + return this.strKWWorkItemOverride; + } + set + { + if (this.strKWWorkItemOverride != value) + { + this.strKWWorkItemOverride = value; + } + } + } + + //artificial intelligencee, option 3: Azure Machine Learning + public Boolean IsAzureMachineLearningEnabled + { + get + { + return this.boolEnableAzureMachineLearning; + } + set + { + if (this.boolEnableAzureMachineLearning != value) + { + this.boolEnableAzureMachineLearning = value; + } + } + } + + public String AzureMachineLearningAPIKey + { + get + { + return this.strAMLAPIKey; + } + set + { + if (this.strAMLAPIKey != value) + { + this.strAMLAPIKey = value; + } + } + } + + public String AzureMachineLearningURL + { + get + { + return this.strAMLWebServiceURL; + } + set + { + if (this.strAMLWebServiceURL != value) + { + this.strAMLWebServiceURL = value; + } + } + } + + public IList IncidentDecExtensions { get; set; } + public IList IncidentEnumExtensions { get; set; } + public IList IncidentStringExtensions { get; set; } + public IList ServiceRequestDecExtensions { get; set; } + public IList ServiceRequestEnumExtensions { get; set; } + public IList ServiceRequestStringExtensions { get; set; } + public ManagementPackProperty AMLIncidentConfidenceDecExtension + { + get + { + return incidentAMLWIConfidenceExtensionDec; + } + set + { + if (this.incidentAMLWIConfidenceExtensionDec != value) + { + incidentAMLWIConfidenceExtensionDec = value; + } + } + } + public ManagementPackProperty AMLIncidentWIPredictionExtension + { + get + { + return incidentAMLWITypePredictionExtensionGUID; + } + set + { + if (this.incidentAMLWITypePredictionExtensionGUID != value) + { + incidentAMLWITypePredictionExtensionGUID = value; + } + } + } + public ManagementPackProperty AMLServiceRequestWIPredictionExtension + { + get + { + return serviceRequestAMLWITypePredictionExtensionGUID; + } + set + { + if (this.serviceRequestAMLWITypePredictionExtensionGUID != value) + { + serviceRequestAMLWITypePredictionExtensionGUID = value; + } + } + } + public ManagementPackProperty AMLIncidentClassificationConfidenceDecExtension + { + get + { + return incidentAMLClassifcationConfidenceExtensionDec; + } + set + { + if (this.incidentAMLClassifcationConfidenceExtensionDec != value) + { + incidentAMLClassifcationConfidenceExtensionDec = value; + } + } + } + public ManagementPackProperty AMLIncidentSupportGroupConfidenceDecExtension + { + get + { + return incidentAMLSupportGroupIConfidenceExtensionDec; + } + set + { + if (this.incidentAMLSupportGroupIConfidenceExtensionDec != value) + { + incidentAMLSupportGroupIConfidenceExtensionDec = value; + } + } + } + public ManagementPackProperty AMLIncidentClassificationPredictionEnumExtension + { + get + { + return incidentAMLClassificationPredictionExtensionEnum; ; + } + set + { + if (this.incidentAMLClassificationPredictionExtensionEnum != value) + { + incidentAMLClassificationPredictionExtensionEnum = value; + } + } + } + public ManagementPackProperty AMLIncidentSupportGroupPredictionEnumExtension + { + get + { + return incidentAMLSupportGroupPredictionExtensionEnum; + } + set + { + if (this.incidentAMLSupportGroupPredictionExtensionEnum != value) + { + incidentAMLSupportGroupPredictionExtensionEnum = value; + } + } + } + + public ManagementPackProperty AMLServiceRequestConfidenceDecExtension + { + get + { + return serviceRequestAMLWIConfidenceExtensionDec; + } + set + { + if (this.serviceRequestAMLWIConfidenceExtensionDec != value) + { + serviceRequestAMLWIConfidenceExtensionDec = value; + } + } + } + public ManagementPackProperty AMLServiceRequestClassificationConfidenceDecExtension + { + get + { + return serviceRequestAMLClassifcationConfidenceExtensionDec; + } + set + { + if (this.serviceRequestAMLClassifcationConfidenceExtensionDec != value) + { + serviceRequestAMLClassifcationConfidenceExtensionDec = value; + } + } + } + public ManagementPackProperty AMLServiceRequestSupportGroupConfidenceDecExtension + { + get + { + return serviceRequestAMLSupportGroupIConfidenceExtensionDec; + } + set + { + if (this.serviceRequestAMLSupportGroupIConfidenceExtensionDec != value) + { + serviceRequestAMLSupportGroupIConfidenceExtensionDec = value; + } + } + } + public ManagementPackProperty AMLServiceRequestClassificationPredictionEnumExtension + { + get + { + return serviceRequestAMLClassificationPredictionExtensionEnum; + } + set + { + if (this.serviceRequestAMLClassificationPredictionExtensionEnum != value) + { + serviceRequestAMLClassificationPredictionExtensionEnum = value; + } + } + } + public ManagementPackProperty AMLServiceRequestSupportGroupPredictionEnumExtension + { + get + { + return serviceRequestAMLSupportGroupPredictionExtensionEnum; + } + set + { + if (this.serviceRequestAMLSupportGroupPredictionExtensionEnum != value) + { + serviceRequestAMLSupportGroupPredictionExtensionEnum = value; + } + } + } + + public String AzureMachineLearningWIConfidence + { + get + { + return this.decAMLWIMinConfidence; + } + set + { + if (this.decAMLWIMinConfidence != value) + { + this.decAMLWIMinConfidence = value; + } + } + } + + public String AzureMachineLearningClassificationConfidence + { + get + { + return this.decAMLClassificationMinConfidence; + } + set + { + if (this.decAMLClassificationMinConfidence != value) + { + this.decAMLClassificationMinConfidence = value; + } + } + } + + public String AzureMachineLearningSupportGroupConfidence + { + get + { + return this.decAMLSupportGroupMinConfidence; + } + set + { + if (this.decAMLSupportGroupMinConfidence != value) + { + this.decAMLSupportGroupMinConfidence = value; + } + } + } + + //azure translate + public Boolean IsAzureTranslationEnabled + { + get + { + return this.boolEnableAzureTranslate; + } + set + { + if (this.boolEnableAzureTranslate != value) + { + this.boolEnableAzureTranslate = value; + } + } + } + + public String AzureTranslateAPIKey + { + get + { + return this.strAzureTranslateAPIKey; + } + set + { + if (this.strAzureTranslateAPIKey != value) + { + this.strAzureTranslateAPIKey = value; + } + } + } + + public String AzureTranslateDefaultLanguageCode + { + get + { + return this.strAzureTranslateDefaultLanguageCode; + } + set + { + if (this.strAzureTranslateDefaultLanguageCode != value) + { + this.strAzureTranslateDefaultLanguageCode = value; + } + } + } + + + //management pack guid + public Guid EnterpriseManagementObjectID + { + get + { + return this.guidEnterpriseManagementObjectID; + } + set + { + if (this.guidEnterpriseManagementObjectID != value) + { + this.guidEnterpriseManagementObjectID = value; + } + } + } + + #endregion + + //This Loads the settings that have been set in the management pack. In some cases for user protection, they load values from the function below + //so on Save some kind of value is committed. This provides the means to suggest a value once, but ignore it afterwards. + internal AdminSettingWizardData(EnterpriseManagementObject emoAdminSetting) + { + //Get the server name to connect to and then connect + String strServerName = Registry.GetValue("HKEY_CURRENT_USER\\Software\\Microsoft\\System Center\\2010\\Service Manager\\Console\\User Settings", "SDKServiceMachine", "localhost").ToString(); + EnterpriseManagementGroup emg = new EnterpriseManagementGroup(strServerName); + + /*Get the SMLets Settings class and Additional Mailbox class by their GUID + ##PowerShell SMlets equivalent: + Get-SCSMClass -name "SMLets" + Get-SCSMClass -id "a0022e87-75a8-65ee-4581-d923ff06a564" + Get-SCSMClass -id "8b132799-638b-cc6f-469a-8f0638f917c0" + */ + ManagementPackClass smletsExchangeConnectorSettingsClass = emg.EntityTypes.GetClass(new Guid("a0022e87-75a8-65ee-4581-d923ff06a564")); + ManagementPackClass smletsExchangeConnectorAdditionalMailboxClass = emg.EntityTypes.GetClass(new Guid("8b132799-638b-cc6f-469a-8f0638f917c0")); + + //attempt to find the Cireson Portal MP. In doing so, a variable now exists in memory to identify the MPs existance. + try + { + ManagementPack ciresonPortal = emg.ManagementPacks.GetManagementPack(new Guid("7d0aff53-6bf5-465d-87bd-c83412d5806a")); + this.IsCiresonPortalMPImported = true; + } + catch { this.IsCiresonPortalMPImported = false; } + + //General Settings + this.SCSMmanagementServer = emoAdminSetting[smletsExchangeConnectorSettingsClass, "SCSMmgmtServer"].ToString(); + this.WorkflowEmailAddress = emoAdminSetting[smletsExchangeConnectorSettingsClass, "WorkflowEmailAddress"].ToString(); + this.ExchangeAutodiscoverURL = emoAdminSetting[smletsExchangeConnectorSettingsClass, "ExchangeAutodiscoverURL"].ToString(); + + //Autodiscover + try { this.IsAutodiscoverEnabled = Boolean.Parse(emoAdminSetting[smletsExchangeConnectorSettingsClass, "UseAutoDiscover"].ToString()); } + catch { this.IsAutodiscoverEnabled = false; } + + //DLL Paths - EWS, Mimekit, PII regex, HTML Suyggestions, Custom Events + this.EWSFilePath = emoAdminSetting[smletsExchangeConnectorSettingsClass, "FilePathEWSDLL"].ToString(); + this.MimeKitFilePath = emoAdminSetting[smletsExchangeConnectorSettingsClass, "FilePathMimeKitDLL"].ToString(); + this.PIIRegexFilePath = emoAdminSetting[smletsExchangeConnectorSettingsClass, "FilePathPIIRegex"].ToString(); + this.HTMLSuggestionTemplatesFilePath = emoAdminSetting[smletsExchangeConnectorSettingsClass, "FilePathHTMLSuggestionTemplates"].ToString(); + this.CustomEventsFilePath = emoAdminSetting[smletsExchangeConnectorSettingsClass, "FilePathCustomEvents"].ToString(); + + //Processing Logic + //Create users not found in CMDB + try { this.CreateUsersNotFoundtInCMDB = Boolean.Parse(emoAdminSetting[smletsExchangeConnectorSettingsClass, "CreateUsersNotInCMDB"].ToString()); } + catch { this.CreateUsersNotFoundtInCMDB = false; } + + //Processing Logic - Process on behalf of AD groups + try { this.ProcessADGroupVote = Boolean.Parse(emoAdminSetting[smletsExchangeConnectorSettingsClass, "VoteOnBehalfOfADGroup"].ToString()); } + catch { this.ProcessADGroupVote = false; } + + //Processing Logic - Take requires Support Group membership as defined by Cireson Support Group Mapping + try { this.EnforceSupportGroupTake = Boolean.Parse(emoAdminSetting[smletsExchangeConnectorSettingsClass, "TakeRequiresSupportGroupMembership"].ToString()); } + catch { this.EnforceSupportGroupTake = false; } + + //Processing Logic - include whole email on Action Log + try { this.IncludeWholeEmail = Boolean.Parse(emoAdminSetting[smletsExchangeConnectorSettingsClass, "IncludeWholeEmail"].ToString()); } + catch { this.IncludeWholeEmail = false; } + + //Processing Logic - attach email to work item on the related items tab + try { this.AttachEmailToWorkItem = Boolean.Parse(emoAdminSetting[smletsExchangeConnectorSettingsClass, "AttachEmailToWorkItem"].ToString()); } + catch { this.AttachEmailToWorkItem = false; } + + //Processing Logic - Mail processing + try { this.ProcessCalendarAppointments = Boolean.Parse(emoAdminSetting[smletsExchangeConnectorSettingsClass, "ProcessCalendarAppointments"].ToString()); } + catch { this.ProcessCalendarAppointments = false; } + try { this.ProcessMergeReplies = Boolean.Parse(emoAdminSetting[smletsExchangeConnectorSettingsClass, "MergeReplies"].ToString()); } + catch { this.ProcessMergeReplies = false; } + try { this.ProcessClosedWorkItemsToNewWorkItems = Boolean.Parse(emoAdminSetting[smletsExchangeConnectorSettingsClass, "CreateNewWorkItemIfWorkItemClosed"].ToString()); } + catch { this.ProcessClosedWorkItemsToNewWorkItems = false; } + try { this.ProcessEncryptedEmails = Boolean.Parse(emoAdminSetting[smletsExchangeConnectorSettingsClass, "ProcessDigitallyEncryptedMessages"].ToString()); } + catch { this.ProcessEncryptedEmails = false; } + try { this.ProcessDigitallySignedEmails = Boolean.Parse(emoAdminSetting[smletsExchangeConnectorSettingsClass, "ProcessDigitallySignedMessages"].ToString()); } + catch { this.ProcessDigitallySignedEmails = false; } + this.DynamicAnalystAssignment = emoAdminSetting[smletsExchangeConnectorSettingsClass, "DynamicAnalystAssignmentType"].ToString(); + this.CertificateStore = emoAdminSetting[smletsExchangeConnectorSettingsClass, "CertificateStore"].ToString(); + + //Processing Logic - related user comment control + this.ExternalIRCommentType = emoAdminSetting[smletsExchangeConnectorSettingsClass, "ExternalPartyCommentTypeIR"].ToString(); + this.ExternalSRCommentType = emoAdminSetting[smletsExchangeConnectorSettingsClass, "ExternalPartyCommentTypeSR"].ToString(); + this.ExternalIRCommentPrivate = emoAdminSetting[smletsExchangeConnectorSettingsClass, "ExternalPartyCommentPrivacyIR"].ToString(); + this.ExternalSRCommentPrivate = emoAdminSetting[smletsExchangeConnectorSettingsClass, "ExternalPartyCommentPrivacySR"].ToString(); + + //Processing Logic - remove PII from work items per regex file + try { this.RemovePII = Boolean.Parse(emoAdminSetting[smletsExchangeConnectorSettingsClass, "RemovePII"].ToString()); } + catch { this.RemovePII = false; } + + /*Processing Logic - Custom Support Group enum extensions + Get the Manual Activity, Change Request, and Problem classes, then get all of their properties + that do not come from a Microsoft management pack + ##PowerShell SMlets equivalent: + $maClass = Get-SCSMClass -name "System.WorkItem.Activity.ManualActivity$" + $maClass.GetProperties(1, 1) | Where-Object {($_.SystemType.Name -eq "enum") -and ($_.identifier -notlike "*System.WorkItem.Activity.Library*")} + */ + ManagementPackClass incidentRequestClass = emg.EntityTypes.GetClass(new Guid("a604b942-4c7b-2fb2-28dc-61dc6f465c68")); + ManagementPackClass changeRequestClass = emg.EntityTypes.GetClass(new Guid("e6c9cf6e-d7fe-1b5d-216c-c3f5d2c7670c")); + ManagementPackClass manualActivityClass = emg.EntityTypes.GetClass(new Guid("7ac62bd4-8fce-a150-3b40-16a39a61383d")); + ManagementPackClass problemClass = emg.EntityTypes.GetClass(new Guid("422afc88-5eff-f4c5-f8f6-e01038cde67f")); + IList crPropertyList = changeRequestClass.GetProperties(BaseClassTraversalDepth.Recursive, PropertyExtensionMode.All); + IList maPropertyList = manualActivityClass.GetProperties(BaseClassTraversalDepth.Recursive, PropertyExtensionMode.All); + IList prPropertyList = problemClass.GetProperties(BaseClassTraversalDepth.Recursive, PropertyExtensionMode.All); + List crTempPropertyList = new List(); + List maTempPropertyList = new List(); + List prTempPropertyList = new List(); + //Load the Class Extension lists into a temporary list as long as the Property type is an enum and does not come from the stock Class + //Load the Drop Down's currently Selected Item in the list if the stored GUID matches a property's respective id + foreach (ManagementPackProperty crproperty in crPropertyList) + { + if ((crproperty.Type.ToString() == "enum") && ((crproperty.GetManagementPack().Name != "System.WorkItem.ChangeRequest.Library"))) + { + crTempPropertyList.Add(crproperty); + } + try + { + if (crproperty.Id == (Guid)emoAdminSetting[smletsExchangeConnectorSettingsClass, "CRSupportGroupGUID"].Value) + { + this.ChangeRequestSupportGroupExtensionEnum = crproperty; + } + } + catch { } + } + foreach (ManagementPackProperty maproperty in maPropertyList) + { + if ((maproperty.Type.ToString() == "enum") && (!(maproperty.Identifier.ToString().Contains("System.WorkItem.Activity.Library")))) + { + maTempPropertyList.Add(maproperty); + } + try + { + if (maproperty.Id == (Guid)emoAdminSetting[smletsExchangeConnectorSettingsClass, "MASupportGroupGUID"].Value) + { + this.ManualActivitySupportGroupExtensionEnum = maproperty; + } + } + catch { } + } + foreach (ManagementPackProperty prproperty in prPropertyList) + { + if ((prproperty.Type.ToString() == "enum") && ((prproperty.GetManagementPack().Name != "System.WorkItem.Problem.Library")) && ((prproperty.GetManagementPack().Name != "System.WorkItem.Library"))) + { + prTempPropertyList.Add(prproperty); + } + try + { + if (prproperty.Id == (Guid)emoAdminSetting[smletsExchangeConnectorSettingsClass, "PRSupportGroupGUID"].Value) + { + this.ProblemSupportGroupExtensionEnum = prproperty; + } + } + catch { } + } + //Processing Logic - load the Class Extension Lists from the temporary lists + this.ChangeRequestEnumExtensions = crTempPropertyList.ToList(); + this.ManualActivityEnumExtensions = maTempPropertyList.ToList(); + this.ProblemEnumExtensions = prTempPropertyList.ToList(); + + //Processing Logic - Change Incident Status on Reply + try { this.ChangeIncidentStatusOnReply = Boolean.Parse(emoAdminSetting[smletsExchangeConnectorSettingsClass, "ChangeIncidentStatusOnReply"].ToString()); } + catch { this.ChangeIncidentStatusOnReply = false; } + + /*Processing Logic - Get lists (enums) by their parent GUID to build the Drop Downs + * https://github.com/SMLets/SMLets/blob/55f1bac3bc7a7011a461b24f6d7787ba89fe2624/SMLets.Shared/Code/EntityTypes.cs#L288 + ##PowerShell SMlets equivalents: + $irStatusEnum = Get-SCSMEnumeration -id "89b34802-671e-e422-5e38-7dae9a413ef8" + $irStatusEnum = Get-SCSMEnumeration -name "IncidentStatusEnum$" + Get-SCSMChildEnumeration -Enumeration $irStatusEnum + */ + //Order By, How-To via C# = https://docs.microsoft.com/en-us/dotnet/api/system.linq.enumerable.orderby?view=netframework-4.7.2 + this.IncidentStatusEnums = emg.EntityTypes.GetChildEnumerations(new Guid("89b34802-671e-e422-5e38-7dae9a413ef8"), TraversalDepth.Recursive); + this.IncidentStatusEnums = this.IncidentStatusEnums.OrderBy(enumitem => enumitem.DisplayName).ToList(); + + //Processing Logic - get the currently defined Incident Statuses by Reply + this.DefaultIncidentStatusOnAUReplyEnum = (ManagementPackEnumeration)emoAdminSetting[null, "IncidentStatusOnAffectedUserReply"].Value; + this.DefaultIncidentStatusOnATReplyEnum = (ManagementPackEnumeration)emoAdminSetting[null, "IncidentStatusOnAssignedToReply"].Value; + this.DefaultIncidentStatusOnRelReplyEnum = (ManagementPackEnumeration)emoAdminSetting[null, "IncidentStatusOnRelatedUserReply"].Value; + + //Processing Logic - get Incident Resolution Categories by GUID to build the Drop Down + this.IncidentResolutionCategoryEnums = emg.EntityTypes.GetChildEnumerations(new Guid("72674491-02cb-1d90-a48f-1b269eb83602"), TraversalDepth.Recursive); + this.IncidentResolutionCategoryEnums = this.IncidentResolutionCategoryEnums.OrderBy(enumitem => enumitem.DisplayName).ToList(); + + //Processing Logic - get Service Request Implementation Categories by GUID to build the Drop Down + this.ServiceRequestImplementationCategoryEnums = emg.EntityTypes.GetChildEnumerations(new Guid("4ea37c27-9b24-615a-94da-510539371f4c"), TraversalDepth.Recursive); + this.ServiceRequestImplementationCategoryEnums = this.ServiceRequestImplementationCategoryEnums.OrderBy(enumitem => enumitem.DisplayName).ToList(); + + //Processing Logic - get Problem Resolution Categories by GUID to build the Drop Down + this.ProblemResolutionCategoryEnums = emg.EntityTypes.GetChildEnumerations(new Guid("52a0bfb0-b7e6-d16e-d06e-97ce62b4a335"), TraversalDepth.Recursive); + this.ProblemResolutionCategoryEnums = this.ProblemResolutionCategoryEnums.OrderBy(enumitem => enumitem.DisplayName).ToList(); + + //Processing Logic - get the currently defined Incident Resolution Category by the currently stored GUID value + this.DefaultIncidentResolutionCategoryEnum = (ManagementPackEnumeration)emoAdminSetting[null, "IncidentResolutionCategory"].Value; + + //Processing Logic - get the currently defined Service Request Implementation Category by the currently stored GUID value + this.DefaultServiceRequestImplementationCategoryEnum = (ManagementPackEnumeration)emoAdminSetting[null, "ServiceRequestImplementationCategory"].Value; + + //Processing Logic - get the currently defined Problem Resolution Category by the currently stored GUID value + this.DefaultProblemResolutionCategoryEnum = (ManagementPackEnumeration)emoAdminSetting[null, "ProblemResolutionCategory"].Value; + + //Multiple Mailbox Routing/Redirection + try { this.UseMailboxRedirection = Boolean.Parse(emoAdminSetting[smletsExchangeConnectorSettingsClass, "UseMailboxRedirection"].ToString()); } + catch { this.UseMailboxRedirection = false; } + + //File Attachments + if (this.MinFileAttachmentSize != null) { this.MinFileAttachmentSize = emoAdminSetting[smletsExchangeConnectorSettingsClass, "MinimumFileAttachmentSize"].ToString(); } + else { this.MinFileAttachmentSize = strMinFileSize; } + + try { this.IsMaxFileSizeAttachmentsEnabled = Boolean.Parse(emoAdminSetting[smletsExchangeConnectorSettingsClass, "EnforceFileAttachmentSettings"].ToString()); } + catch { this.IsMaxFileSizeAttachmentsEnabled = false; } + + //Templates + this.DefaultWorkItem = emoAdminSetting[smletsExchangeConnectorSettingsClass, "DefaultWorkItemType"].ToString(); + + /* + ##PowerShell SMlets equivalent requires use of retrieving Type Projection, and 3 semi-C# style calls to connect to the management group, + perform a near identical ManagementPackTemplateCritieria search as seen below in C#, and finally a C# style call to retrieve said templates + as Get-SCSMObjectTemplate does not accept a critiera parameter: + $irTypeProjection = Get-SCSMTypeProjection -name "system.workitem.incident.projectiontype$" + $srTypeProjection = Get-SCSMTypeProjection -name "system.workitem.servicerequestprojection$" + $prTypeProjection = Get-SCSMTypeProjection -name "system.workitem.problem.projectiontype$" + $crTypeProjection = Get-SCSMTypeProjection -Name "system.workitem.changerequestprojection$" + + $managementGroup = new-object Microsoft.EnterpriseManagement.EnterpriseManagementGroup "localhost" + $incidentTemplateCritiera = new-object Microsoft.EnterpriseManagement.Configuration.ManragementPackObjectTemplateCriteria("TypeID = '$($irTypeProjection.ID)'") + $serviceRequestTemplateCritiera = new-object Microsoft.EnterpriseManagement.Configuration.ManagementPackObjectTemplateCriteria("TypeID = '$($srTypeProjection.ID)'") + $changeRequestTemplateCritiera = new-object Microsoft.EnterpriseManagement.Configuration.ManagementPackObjectTemplateCriteria("TypeID = '$($crTypeProjection.ID)'") + $problemTemplateCritiera = new-object Microsoft.EnterpriseManagement.Configuration.ManagementPackObjectTemplateCriteria("TypeID = '$($prTypeProjection.ID)'") + + $managementGroup.Templates.GetObjectTemplates($changeRequestTemplateCritiera) + * + However what makes this different is that we need to retrieve Templates as they fall under any kind of Type Projection that could have + been created. To do this, we need to obtain all of the Type Projections per a Work Item class. Then cycle through the above for each + returned Type Projection. + */ + //first, we need to build Type Projection criteria per the 4 Primary Work Item classes, their GUIDs are as follows within "Type =" + ManagementPackTypeProjectionCriteria irTPCriteria = new ManagementPackTypeProjectionCriteria("Type = 'a604b942-4c7b-2fb2-28dc-61dc6f465c68'"); + ManagementPackTypeProjectionCriteria srTPCriteria = new ManagementPackTypeProjectionCriteria("Type = '04b69835-6343-4de2-4b19-6be08c612989'"); + ManagementPackTypeProjectionCriteria crTPCriteria = new ManagementPackTypeProjectionCriteria("Type = 'e6c9cf6e-d7fe-1b5d-216c-c3f5d2c7670c'"); + ManagementPackTypeProjectionCriteria prTPCriteria = new ManagementPackTypeProjectionCriteria("Type = '422afc88-5eff-f4c5-f8f6-e01038cde67f'"); + + //second, we need to get all of the Type Projections that could be getting used for a particular class. This ensures that if anyone has + //custom Type Projections or has modified stock forms through the Authoring tool that we make those Templates available for selection + IList irTPs = emg.EntityTypes.GetTypeProjections(irTPCriteria); + IList srTPs = emg.EntityTypes.GetTypeProjections(srTPCriteria); + IList crTPs = emg.EntityTypes.GetTypeProjections(crTPCriteria); + IList prTPs = emg.EntityTypes.GetTypeProjections(prTPCriteria); + + //third, create some empty lists to add all of the templates + IList irTemplateList = new List(); + IList srTemplateList = new List(); + IList crTemplateList = new List(); + IList prTemplateList = new List(); + + //get the Incident Templates by Type Projection ID/GUID + foreach (ManagementPackTypeProjection tp in irTPs) + { + ManagementPackObjectTemplateCriteria mpotcIncidents = new ManagementPackObjectTemplateCriteria(string.Format("TypeID = '{0}'", tp.Id.ToString())); + IList retrievedTemplates = emg.Templates.GetObjectTemplates(mpotcIncidents); + foreach (ManagementPackObjectTemplate template in retrievedTemplates) + { + irTemplateList.Add(template); + } + } + this.IncidentTemplates = irTemplateList; + this.IncidentTemplates = this.IncidentTemplates.OrderBy(template => template.DisplayName).ToList(); + + try { + Guid irTemplateGuid = (Guid)emoAdminSetting[null, "DefaultIncidentTemplateGUID"].Value; + this.DefaultIncidentTemplate = emg.Templates.GetObjectTemplate(irTemplateGuid); + } + catch { } + + //get the Service Request Templates by Type Projection ID/GUID + foreach (ManagementPackTypeProjection tp in srTPs) + { + ManagementPackObjectTemplateCriteria mpotcServiceRequests = new ManagementPackObjectTemplateCriteria(string.Format("TypeID = '{0}'", tp.Id.ToString())); + IList retrievedTemplates = emg.Templates.GetObjectTemplates(mpotcServiceRequests); + foreach (ManagementPackObjectTemplate template in retrievedTemplates) + { + srTemplateList.Add(template); + } + } + this.ServiceRequestTemplates = srTemplateList; + this.ServiceRequestTemplates = this.ServiceRequestTemplates.OrderBy(template => template.DisplayName).ToList(); + + try + { + Guid srTemplateGuid = (Guid)emoAdminSetting[null, "DefaultServiceRequestTemplateGUID"].Value; + this.DefaultServiceRequestTemplate = emg.Templates.GetObjectTemplate(srTemplateGuid); + } + catch { } + + //get the Change Request Templates by Type Projection ID/GUID + foreach (ManagementPackTypeProjection tp in crTPs) + { + ManagementPackObjectTemplateCriteria mpotcChangeRequests = new ManagementPackObjectTemplateCriteria(string.Format("TypeID = '{0}'", tp.Id.ToString())); + IList retrievedTemplates = emg.Templates.GetObjectTemplates(mpotcChangeRequests); + foreach (ManagementPackObjectTemplate template in retrievedTemplates) + { + crTemplateList.Add(template); + } + } + this.ChangeRequestTemplates = crTemplateList; + this.ChangeRequestTemplates = this.ChangeRequestTemplates.OrderBy(template => template.DisplayName).ToList(); + try + { + Guid crTemplateGuid = (Guid)emoAdminSetting[null, "DefaultChangeRequestTemplateGUID"].Value; + this.DefaultChangeRequestTemplate = emg.Templates.GetObjectTemplate(crTemplateGuid); + } + catch { } + + //get the Problem Templates by Type Projection ID/GUID + foreach (ManagementPackTypeProjection tp in prTPs) + { + ManagementPackObjectTemplateCriteria mpotcProblems = new ManagementPackObjectTemplateCriteria(string.Format("TypeID = '{0}'", tp.Id.ToString())); + IList retrievedTemplates = emg.Templates.GetObjectTemplates(mpotcProblems); + foreach (ManagementPackObjectTemplate template in retrievedTemplates) + { + prTemplateList.Add(template); + } + } + this.ProblemTemplates = prTemplateList; + this.ProblemTemplates = this.ProblemTemplates.OrderBy(template => template.DisplayName).ToList(); + try + { + Guid prTemplateGuid = (Guid)emoAdminSetting[null, "DefaultProblemTemplateGUID"].Value; + this.DefaultProblemTemplate = emg.Templates.GetObjectTemplate(prTemplateGuid); + } + catch { } + + /*Get the additional mailboxes by searching by the Additional Mailbox Class + ##PowerShell SMlets equivalent: + $additionalMailboxClass = Get-SCSMClass -Name "SMLets.Exchange.Connector.AdminSettings.AdditionalMailbox$" + Get-SCSMObject -class $additionalMailboxClass + */ + this.AdditionalMailboxes = emg.EntityObjects.GetObjectReader(smletsExchangeConnectorAdditionalMailboxClass, ObjectQueryOptions.Default).ToList(); + + //Keywords + this.KeywordFrom = emoAdminSetting[smletsExchangeConnectorSettingsClass, "SCSMKeywordFrom"].ToString(); + this.KeywordAcknowledge = emoAdminSetting[smletsExchangeConnectorSettingsClass, "SCSMKeywordAcknowledge"].ToString(); + this.KeywordReactivate = emoAdminSetting[smletsExchangeConnectorSettingsClass, "SCSMKeywordReactivate"].ToString(); + this.KeywordResolve = emoAdminSetting[smletsExchangeConnectorSettingsClass, "SCSMKeywordResolved"].ToString(); + this.KeywordClose = emoAdminSetting[smletsExchangeConnectorSettingsClass, "SCSMKeywordClosed"].ToString(); + this.KeywordHold = emoAdminSetting[smletsExchangeConnectorSettingsClass, "SCSMKeywordHold"].ToString(); + this.KeywordTake = emoAdminSetting[smletsExchangeConnectorSettingsClass, "SCSMKeywordTake"].ToString(); + this.KeywordCancel = emoAdminSetting[smletsExchangeConnectorSettingsClass, "SCSMKeywordCancelled"].ToString(); + this.KeywordComplete = emoAdminSetting[smletsExchangeConnectorSettingsClass, "SCSMKeywordCompleted"].ToString(); + this.KeywordSkip = emoAdminSetting[smletsExchangeConnectorSettingsClass, "SCSMKeywordSkipped"].ToString(); + this.KeywordApprove = emoAdminSetting[smletsExchangeConnectorSettingsClass, "SCSMKeywordApprove"].ToString(); + this.KeywordReject = emoAdminSetting[smletsExchangeConnectorSettingsClass, "SCSMKeywordReject"].ToString(); + this.KeywordAnnouncement = emoAdminSetting[smletsExchangeConnectorSettingsClass, "SCSMKeywordAnnouncement"].ToString(); + this.KeywordHealth = emoAdminSetting[smletsExchangeConnectorSettingsClass, "SCOMKeywordHealth"].ToString(); + this.KeywordPrivate = emoAdminSetting[smletsExchangeConnectorSettingsClass, "SCSMKeywordPrivate"].ToString(); + + //Cireson Integration + this.CiresonPortalURL = emoAdminSetting[smletsExchangeConnectorSettingsClass, "CiresonPortalURL"].ToString(); + try { this.MinWordCountToSuggestRO = Int32.Parse(emoAdminSetting[smletsExchangeConnectorSettingsClass, "NumberOfWordsToMatchFromEmailToCiresonRequestOffering"].ToString()); } + catch { this.MinWordCountToSuggestRO = 1; } + try { this.MinWordCountToSuggestKA = Int32.Parse(emoAdminSetting[smletsExchangeConnectorSettingsClass, "NumberOfWordsToMatchFromEmailToCiresonKnowledgeArticle"].ToString()); } + catch { this.MinWordCountToSuggestKA = 1; } + try { this.IsCiresonIntegrationEnabled = Boolean.Parse(emoAdminSetting[smletsExchangeConnectorSettingsClass, "EnableCiresonIntegration"].ToString()); } + catch { this.IsCiresonIntegrationEnabled = false; } + try { this.IsCiresonFirstResponseDateOnSuggestionsEnabled = Boolean.Parse(emoAdminSetting[smletsExchangeConnectorSettingsClass, "EnableSetFirstResponseDateOnSuggestions"].ToString()); } + catch { this.IsCiresonFirstResponseDateOnSuggestionsEnabled = false; } + try { this.IsCiresonKBSearchEnabled = Boolean.Parse(emoAdminSetting[smletsExchangeConnectorSettingsClass, "CiresonSearchKnowledgeBase"].ToString()); } + catch { this.IsCiresonKBSearchEnabled = false; } + try { this.IsCiresonROSearchEnabled = Boolean.Parse(emoAdminSetting[smletsExchangeConnectorSettingsClass, "CiresonSearchRequestOfferings"].ToString()); } + catch { this.IsCiresonROSearchEnabled = false; } + + //Announcements + this.AuthorizedAnnouncementApproverType = emoAdminSetting[smletsExchangeConnectorSettingsClass, "SCSMAnnouncementApprovedMemberType"].ToString(); + this.LowPriorityAnnouncementKeyword = emoAdminSetting[smletsExchangeConnectorSettingsClass, "AnnouncementKeywordLow"].ToString(); + this.MediumPriorityAnnouncementKeyword = emoAdminSetting[smletsExchangeConnectorSettingsClass, "AnnouncementKeywordMedium"].ToString(); + this.HighPriorityAnnouncementKeyword = emoAdminSetting[smletsExchangeConnectorSettingsClass, "AnnouncementKeywordHigh"].ToString(); + + if (this.LowPriorityExpiresInHours != null) { this.LowPriorityExpiresInHours = emoAdminSetting[smletsExchangeConnectorSettingsClass, "AnnouncementPriorityLowExpirationInHours"].ToString(); } + else { this.LowPriorityExpiresInHours = strLowPriorityExpInHours; } + + if (this.MediumPriorityExpiresInHours != null) { this.MediumPriorityExpiresInHours = emoAdminSetting[smletsExchangeConnectorSettingsClass, "AnnouncementPriorityNormalExpirationInHours"].ToString(); } + else { this.MediumPriorityExpiresInHours = strMedPriorityExpInHours; } + + if (this.HighPriorityExpiresInHours != null) { this.HighPriorityExpiresInHours = emoAdminSetting[smletsExchangeConnectorSettingsClass, "AnnouncementPriorityCriticalExpirationInHours"].ToString(); } + else { this.HighPriorityExpiresInHours = strHighPriorityExpInHours; } + + try { this.IsAnnouncementIntegrationEnabled = Boolean.Parse(emoAdminSetting[smletsExchangeConnectorSettingsClass, "EnableAnnouncements"].ToString()); } + catch { this.IsAnnouncementIntegrationEnabled = false; } + + try { this.IsSCSMAnnouncementsEnabled = Boolean.Parse(emoAdminSetting[smletsExchangeConnectorSettingsClass, "EnableSCSMAnnouncements"].ToString()); } + catch { this.IsSCSMAnnouncementsEnabled = false; } + + try { this.IsCiresonAnnouncementsEnabled = Boolean.Parse(emoAdminSetting[smletsExchangeConnectorSettingsClass, "EnableCiresonSCSMAnnouncements"].ToString()); } + 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(this.SCSMApprovedGroupGUID, ObjectQueryOptions.Default); + this.SCSMApprovedGroupDisplayName = "CURRENT ANNOUNCEMENT GROUP: " + ScsmApprovedGroupEmoObject.DisplayName; + } + catch + { + this.SCSMApprovedGroupDisplayName = "NO ANNOUNCEMENT GROUP DEFINED"; + } + + //SCOM Integration + try { this.IsSCOMIntegrationEnabled = Boolean.Parse(emoAdminSetting[smletsExchangeConnectorSettingsClass, "EnableSCOMIntegration"].ToString()); } + catch { this.IsSCOMIntegrationEnabled = false; } + 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(this.SCOMApprovedGroupGUID, ObjectQueryOptions.Default); + this.SCOMApprovedGroupDisplayName = "CURRENT APPROVED GROUP: " + ScomApprovedGroupEmoObject.DisplayName; + } + catch + { + this.SCOMApprovedGroupDisplayName = "NO SCOM GROUP DEFINED"; + } + + //Artificial Intelligence - Cognitive Services + try { this.IsArtificialIntelligenceEnabled = Boolean.Parse(emoAdminSetting[smletsExchangeConnectorSettingsClass, "EnableArtificialIntelligence"].ToString()); } + catch { this.IsArtificialIntelligenceEnabled = false; } + + //Artificial Intelligence - Cognitive Services + this.ACSRegion = emoAdminSetting[smletsExchangeConnectorSettingsClass, "ACSTextAnalyticsRegion"].ToString(); + this.AzureCognitiveServicesAPIKey = emoAdminSetting[smletsExchangeConnectorSettingsClass, "ACSTextAnalyticsAPIKey"].ToString(); + this.AzureCognitiveServicesBoundaries = emoAdminSetting[smletsExchangeConnectorSettingsClass, "ACSPriorityScoringBoundaries"].ToString(); + if (this.MinimumPercentToCreateServiceRequest != null) { this.MinimumPercentToCreateServiceRequest = emoAdminSetting[smletsExchangeConnectorSettingsClass, "MinACSSentimentToCreateSR"].ToString(); } + else { this.MinimumPercentToCreateServiceRequest = strMinimumPercentToCreateServiceRequest; } + + try { this.IsAzureCognitiveServicesEnabled = Boolean.Parse(emoAdminSetting[smletsExchangeConnectorSettingsClass, "EnableACSForNewWorkItem"].ToString()); } + catch { this.IsAzureCognitiveServicesEnabled = false; } + try { this.IsACSForKAEnabled = Boolean.Parse(emoAdminSetting[smletsExchangeConnectorSettingsClass, "EnableACSForCiresonKASuggestion"].ToString()); } + catch { this.IsACSForKAEnabled = false; } + try { this.IsACSForROEnabled = Boolean.Parse(emoAdminSetting[smletsExchangeConnectorSettingsClass, "EnableACSForCiresonROSuggestion"].ToString()); } + catch { this.IsACSForROEnabled = false; } + try { this.IsACSForPriorityScoringEnabled = Boolean.Parse(emoAdminSetting[smletsExchangeConnectorSettingsClass, "EnableACSPriorityScoring"].ToString()); } + catch { this.IsACSForPriorityScoringEnabled = false; } + + this.IncidentImpactEnums = emg.EntityTypes.GetChildEnumerations(new Guid("11756265-f18e-e090-eed2-3aa923a4c872"), TraversalDepth.Recursive); + this.IncidentImpactEnums = this.IncidentImpactEnums.OrderBy(enumitem => enumitem.DisplayName).ToList(); + this.IncidentUrgencyEnums = emg.EntityTypes.GetChildEnumerations(new Guid("04b28bfb-8898-9af3-009b-979e58837852"), TraversalDepth.Recursive); + this.IncidentUrgencyEnums = this.IncidentUrgencyEnums.OrderBy(enumitem => enumitem.DisplayName).ToList(); + + this.ServiceRequestUrgencyEnums = emg.EntityTypes.GetChildEnumerations(new Guid("eb35f771-8b0a-41aa-18fb-0432dfd957c4"), TraversalDepth.Recursive); + this.ServiceRequestUrgencyEnums = this.ServiceRequestUrgencyEnums.OrderBy(enumitem => enumitem.DisplayName).ToList(); + this.ServiceRequestPriorityEnums = emg.EntityTypes.GetChildEnumerations(new Guid("d55e65ea-fae9-f7db-0937-843bfb1367c0"), TraversalDepth.Recursive); + this.ServiceRequestPriorityEnums = this.ServiceRequestPriorityEnums.OrderBy(enumitem => enumitem.DisplayName).ToList(); + + //Artificial Intelligence - Keyword Matching + try { this.IsKeywordMatchingEnabled = Boolean.Parse(emoAdminSetting[smletsExchangeConnectorSettingsClass, "EnableKeywordMatchForNewWorkItem"].ToString()); } + catch { this.IsKeywordMatchingEnabled = false; } + this.KeywordMatchingRegexPattern = emoAdminSetting[smletsExchangeConnectorSettingsClass, "KeywordMatchRegexForNewWorkItem"].ToString(); + this.KeywordWorkItemTypeOverride = emoAdminSetting[smletsExchangeConnectorSettingsClass, "KeywordMatchWorkItemType"].ToString(); + + //Artificial Intelligence - Azure Machine Learning + try { this.IsAzureMachineLearningEnabled = Boolean.Parse(emoAdminSetting[smletsExchangeConnectorSettingsClass, "EnableAML"].ToString()); } + catch { this.IsAzureMachineLearningEnabled = false; } + this.AzureMachineLearningAPIKey = emoAdminSetting[smletsExchangeConnectorSettingsClass, "AMLAPIKey"].ToString(); + this.AzureMachineLearningURL = emoAdminSetting[smletsExchangeConnectorSettingsClass, "AMLurl"].ToString(); + if (this.AzureMachineLearningWIConfidence != null) { this.AzureMachineLearningWIConfidence = emoAdminSetting[smletsExchangeConnectorSettingsClass, "AMLMinConfidenceWorkItemType"].ToString(); } + else { this.AzureMachineLearningWIConfidence = decAMLWIMinConfidence; } + if (this.AzureMachineLearningClassificationConfidence != null) { this.AzureMachineLearningClassificationConfidence = emoAdminSetting[smletsExchangeConnectorSettingsClass, "AMLMinConfidenceWorkItemClassification"].ToString(); } + else { this.AzureMachineLearningClassificationConfidence = decAMLClassificationMinConfidence; } + if (this.AzureMachineLearningSupportGroupConfidence != null) { this.AzureMachineLearningSupportGroupConfidence = emoAdminSetting[smletsExchangeConnectorSettingsClass, "AMLMinConfidenceWorkItemSupportGroup"].ToString(); } + else { this.AzureMachineLearningSupportGroupConfidence = decAMLSupportGroupMinConfidence; } + + ManagementPackClass incidentClass = emg.EntityTypes.GetClass(new Guid("a604b942-4c7b-2fb2-28dc-61dc6f465c68")); + ManagementPackClass serviceRequestClass = emg.EntityTypes.GetClass(new Guid("04b69835-6343-4de2-4b19-6be08c612989")); + IList irPropertyList = incidentClass.GetProperties(BaseClassTraversalDepth.Recursive, PropertyExtensionMode.All); + IList srPropertyList = serviceRequestClass.GetProperties(BaseClassTraversalDepth.Recursive, PropertyExtensionMode.All); + List irTempPropertyList = new List(); + List srTempPropertyList = new List(); + List irTempEnumPropertyList = new List(); + List srTempEnumPropertyList = new List(); + List irTempStringPropertyList = new List(); + List srTempStringPropertyList = new List(); + + //Load the Class Extension lists into temporary lists as long as the Property type is an dec/enum and does not come from the stock Class + //Load the Drop Down's currently Selected Item in the list if the stored GUID matches a property's respective id + foreach (ManagementPackProperty irproperty in irPropertyList) + { + //load all of the decimal properties that aren't from the Microsoft MP into a list + if ((irproperty.Type.ToString() == "decimal") && ((irproperty.GetManagementPack().Name != "System.WorkItem.Incident.Library"))) + { + irTempPropertyList.Add(irproperty); + } + + //of the decimal items being loaded, if they are the ones currently written to the MP set them as the selected item in the drop down + if ((irproperty.Type.ToString() == "decimal") && ((irproperty.GetManagementPack().Name != "System.WorkItem.Incident.Library"))) + { + try + { + if (irproperty.Id == (Guid)emoAdminSetting[smletsExchangeConnectorSettingsClass, "AMLIncidentConfidenceClassExtensionGUID"].Value) + { + this.AMLIncidentConfidenceDecExtension = irproperty; + } + } + catch { } + try + { + if (irproperty.Id == (Guid)emoAdminSetting[smletsExchangeConnectorSettingsClass, "AMLIncidentClassificationConfidenceClassExtensionGUID"].Value) + { + this.AMLIncidentClassificationConfidenceDecExtension = irproperty; + } + } + catch { } + try + { + if (irproperty.Id == (Guid)emoAdminSetting[smletsExchangeConnectorSettingsClass, "AMLIncidentSupportGroupConfidenceClassExtensionGUID"].Value) + { + this.AMLIncidentSupportGroupConfidenceDecExtension = irproperty; + } + } + catch { } + try + { + + if (irproperty.Id == (Guid)emoAdminSetting[smletsExchangeConnectorSettingsClass, "ACSSentimentScoreIncidentClassExtensionGUID"].Value) + { + this.ACSIncidentSentimentDecExtension = irproperty; + } + } + catch { } + } + + //load all of the enum properties that aren't from the Microsoft MP into a list + if ((irproperty.Type.ToString() == "enum") && ((irproperty.GetManagementPack().Name != "System.WorkItem.Incident.Library")) && ((irproperty.GetManagementPack().Name != "System.WorkItem.Library"))) + { + irTempEnumPropertyList.Add(irproperty); + + //if the enum property is the same guid as the one saved, make it the current selection in the list + try + { + if (irproperty.Id == (Guid)emoAdminSetting[smletsExchangeConnectorSettingsClass, "AMLIncidentClassificationPredictionClassExtensionGUID"].Value) + { + this.AMLIncidentClassificationPredictionEnumExtension = irproperty; + } + } + catch { } + + //if the enum property is the same guid as the one saved, make it the current selection in the list + try + { + if (irproperty.Id == (Guid)emoAdminSetting[smletsExchangeConnectorSettingsClass, "AMLIncidentSupportGroupPredictionClassExtensionGUID"].Value) + { + this.AMLIncidentSupportGroupPredictionEnumExtension = irproperty; + } + } + catch { } + } + + //load all of the string properties that aren't from the Microsoft MP into a list + if ((irproperty.Type.ToString() == "string") && ((irproperty.GetManagementPack().Name != "System.WorkItem.Incident.Library")) && ((irproperty.GetManagementPack().Name != "System.WorkItem.Library")) && ((irproperty.GetManagementPack().Name != "System.Library"))) + { + irTempStringPropertyList.Add(irproperty); + + //if the string property is the same guid as the one saved, make it the current selection in the list + try + { + if (irproperty.Id == (Guid)emoAdminSetting[smletsExchangeConnectorSettingsClass, "AMLIRWorkItemTypePredictionClassExtensionGUID"].Value) + { + this.AMLIncidentWIPredictionExtension = irproperty; + } + } + catch { } + } + } + + //Load the Class Extension lists into temporary lists as long as the Property type is an dec/enum and does not come from the stock Class + //Load the Drop Down's currently Selected Item in the list if the stored GUID matches a property's respective id + foreach (ManagementPackProperty srproperty in srPropertyList) + { + if ((srproperty.Type.ToString() == "decimal") && ((srproperty.GetManagementPack().Name != "System.WorkItem.ServiceRequest.Library"))) + { + srTempPropertyList.Add(srproperty); + + try + { + if (srproperty.Id == (Guid)emoAdminSetting[smletsExchangeConnectorSettingsClass, "AMLServiceRequestConfidenceClassExtensionGUID"].Value) + { + this.AMLServiceRequestConfidenceDecExtension = srproperty; + } + } + catch { } + try + { + if (srproperty.Id == (Guid)emoAdminSetting[smletsExchangeConnectorSettingsClass, "AMLServiceRequestClassificationConfidenceClassExtensionGUID"].Value) + { + this.AMLServiceRequestClassificationConfidenceDecExtension = srproperty; + } + } + catch { } + try + { + if (srproperty.Id == (Guid)emoAdminSetting[smletsExchangeConnectorSettingsClass, "AMLServiceRequestSupportGroupConfidenceClassExtensionGUID"].Value) + { + this.AMLServiceRequestSupportGroupConfidenceDecExtension = srproperty; + } + } + catch { } + try + { + + if (srproperty.Id == (Guid)emoAdminSetting[smletsExchangeConnectorSettingsClass, "ACSSentimentScoreServiceRequestClassExtensionGUID"].Value) + { + this.ACSServiceRequestSentimentDecExtension = srproperty; + } + } + catch { } + } + + //load all of the enum properties that aren't from the Microsoft MP into a list + if ((srproperty.Type.ToString() == "enum") && ((srproperty.GetManagementPack().Name != "System.WorkItem.ServiceRequest.Library"))) + { + srTempEnumPropertyList.Add(srproperty); + + //if the enum property is the same guid as the one saved, make it the current selection in the list + try + { + if (srproperty.Id == (Guid)emoAdminSetting[smletsExchangeConnectorSettingsClass, "AMLServiceRequestClassificationPredictionClassExtensionGUID"].Value) + { + this.AMLServiceRequestClassificationPredictionEnumExtension = srproperty; + } + } + catch { } + + //if the enum property is the same guid as the one saved, make it the current selection in the list + try + { + if (srproperty.Id == (Guid)emoAdminSetting[smletsExchangeConnectorSettingsClass, "AMLServiceRequestSupportGroupPredictionClassExtensionGUID"].Value) + { + this.AMLServiceRequestSupportGroupPredictionEnumExtension = srproperty; + } + } + catch { } + } + + //load all of the string properties that aren't from the Microsoft MP into a list + if ((srproperty.Type.ToString() == "string") && ((srproperty.GetManagementPack().Name != "System.WorkItem.ServiceRequest.Library")) && ((srproperty.GetManagementPack().Name != "System.WorkItem.Library")) && ((srproperty.GetManagementPack().Name != "System.Library"))) + { + srTempStringPropertyList.Add(srproperty); + + //if the string property is the same guid as the one saved, make it the current selection in the list + try + { + if (srproperty.Id == (Guid)emoAdminSetting[smletsExchangeConnectorSettingsClass, "AMLSRWorkItemTypePredictionClassExtensionGUID"].Value) + { + this.AMLServiceRequestWIPredictionExtension = srproperty; + } + } + catch { } + } + } + //Processing Logic - load the Class Extension Lists from the temporary lists + this.IncidentDecExtensions = irTempPropertyList.ToList(); + this.IncidentDecExtensions = irTempPropertyList.OrderBy(irextensions => irextensions.DisplayName).ToList(); + this.IncidentEnumExtensions = irTempEnumPropertyList.ToList(); + this.IncidentEnumExtensions = irTempEnumPropertyList.OrderBy(irextensions => irextensions.DisplayName).ToList(); + this.ServiceRequestDecExtensions = srTempPropertyList.ToList(); + this.IncidentStringExtensions = irTempStringPropertyList.OrderBy(irextensions => irextensions.DisplayName).ToList(); + this.IncidentStringExtensions = irTempStringPropertyList.ToList(); + this.ServiceRequestDecExtensions = srTempPropertyList.OrderBy(srextensions => srextensions.DisplayName).ToList(); + this.ServiceRequestEnumExtensions = srTempEnumPropertyList.ToList(); + this.ServiceRequestEnumExtensions = srTempEnumPropertyList.OrderBy(srextensions => srextensions.DisplayName).ToList(); + this.ServiceRequestStringExtensions = srTempStringPropertyList.ToList(); + this.ServiceRequestStringExtensions = srTempStringPropertyList.OrderBy(srextensions => srextensions.DisplayName).ToList(); + + //azure translate + try { this.IsAzureTranslationEnabled = Boolean.Parse(emoAdminSetting[smletsExchangeConnectorSettingsClass, "EnableACSTranslate"].ToString()); } + catch { this.IsAzureTranslationEnabled = false; } + this.AzureTranslateAPIKey = emoAdminSetting[smletsExchangeConnectorSettingsClass, "ACSTranslateAPIKey"].ToString(); + this.AzureTranslateDefaultLanguageCode = emoAdminSetting[smletsExchangeConnectorSettingsClass, "ACSTranslateDefaultLanguageCode"].ToString(); + + //load the MP + this.EnterpriseManagementObjectID = emoAdminSetting.Id; + } + + //This Saves the values that have been set throughout the Wizard Pages back into the management pack so the + //SMLets Exchange Connector PowerShell can read them via ((Get-SCSMObject -Class (Get-SCSMClass -Name "SMLets.Exchange.Connector.AdminSettings$"))) + public override void AcceptChanges(WizardMode wizardMode) + { + //Get the server name to connect to and connect + String strServerName = Registry.GetValue("HKEY_CURRENT_USER\\Software\\Microsoft\\System Center\\2010\\Service Manager\\Console\\User Settings", "SDKServiceMachine", "localhost").ToString(); + EnterpriseManagementGroup emg = new EnterpriseManagementGroup(strServerName); + + //Get the SMLets Settings class and Additional Mailbox class by GUID + ManagementPackClass smletsExchangeConnectorSettingsClass = emg.EntityTypes.GetClass(new Guid("a0022e87-75a8-65ee-4581-d923ff06a564")); + ManagementPackClass smletsExchangeConnectorAdditionalMailboxClass = emg.EntityTypes.GetClass(new Guid("8b132799-638b-cc6f-469a-8f0638f917c0")); + + //Get the SMLets Exchange Connector Settings object using the object GUID + EnterpriseManagementObject emoAdminSetting = emg.EntityObjects.GetObject(this.EnterpriseManagementObjectID, ObjectQueryOptions.Default); + + //General Settings + emoAdminSetting[smletsExchangeConnectorSettingsClass, "SCSMmgmtServer"].Value = this.SCSMmanagementServer; + emoAdminSetting[smletsExchangeConnectorSettingsClass, "WorkflowEmailAddress"].Value = this.WorkflowEmailAddress; + emoAdminSetting[smletsExchangeConnectorSettingsClass, "UseAutoDiscover"].Value = this.IsAutodiscoverEnabled; + emoAdminSetting[smletsExchangeConnectorSettingsClass, "ExchangeAutodiscoverURL"].Value = this.ExchangeAutodiscoverURL; + emoAdminSetting[smletsExchangeConnectorSettingsClass, "CreateUsersNotInCMDB"].Value = this.CreateUsersNotFoundtInCMDB; + emoAdminSetting[smletsExchangeConnectorSettingsClass, "IncludeWholeEmail"].Value = this.IncludeWholeEmail; + emoAdminSetting[smletsExchangeConnectorSettingsClass, "AttachEmailToWorkItem"].Value = this.AttachEmailToWorkItem; + + //DLL Paths - EWS, Mimekit, PII regex, HTML Suyggestions, Custom Events + emoAdminSetting[smletsExchangeConnectorSettingsClass, "FilePathEWSDLL"].Value = this.EWSFilePath; + emoAdminSetting[smletsExchangeConnectorSettingsClass, "FilePathMimeKitDLL"].Value = this.MimeKitFilePath; + emoAdminSetting[smletsExchangeConnectorSettingsClass, "FilePathPIIRegex"].Value = this.PIIRegexFilePath; + emoAdminSetting[smletsExchangeConnectorSettingsClass, "FilePathHTMLSuggestionTemplates"].Value = this.HTMLSuggestionTemplatesFilePath; + emoAdminSetting[smletsExchangeConnectorSettingsClass, "FilePathCustomEvents"].Value = this.CustomEventsFilePath; + + //Processing Logic + emoAdminSetting[smletsExchangeConnectorSettingsClass, "VoteOnBehalfOfADGroup"].Value = this.ProcessADGroupVote; + emoAdminSetting[smletsExchangeConnectorSettingsClass, "TakeRequiresSupportGroupMembership"].Value = this.EnforceSupportGroupTake; + emoAdminSetting[smletsExchangeConnectorSettingsClass, "RemovePII"].Value = this.RemovePII; + emoAdminSetting[smletsExchangeConnectorSettingsClass, "UseMailboxRedirection"].Value = this.UseMailboxRedirection; + emoAdminSetting[smletsExchangeConnectorSettingsClass, "ProcessCalendarAppointments"].Value = this.ProcessCalendarAppointments; + emoAdminSetting[smletsExchangeConnectorSettingsClass, "MergeReplies"].Value = this.ProcessMergeReplies; + emoAdminSetting[smletsExchangeConnectorSettingsClass, "DynamicAnalystAssignmentType"].Value = this.DynamicAnalystAssignment; + emoAdminSetting[smletsExchangeConnectorSettingsClass, "CreateNewWorkItemIfWorkItemClosed"].Value = this.ProcessClosedWorkItemsToNewWorkItems; + emoAdminSetting[smletsExchangeConnectorSettingsClass, "ProcessDigitallyEncryptedMessages"].Value = this.ProcessEncryptedEmails; + emoAdminSetting[smletsExchangeConnectorSettingsClass, "ProcessDigitallySignedMessages"].Value = this.ProcessDigitallySignedEmails; + emoAdminSetting[smletsExchangeConnectorSettingsClass, "CertificateStore"].Value = this.CertificateStore; + + //Processing Logic - Set Incident Resolution, Service Request Implentation, and Problem Resolution Categories by their Enum Name + emoAdminSetting[null, "IncidentResolutionCategory"].Value = this.DefaultIncidentResolutionCategoryEnum; + emoAdminSetting[null, "ServiceRequestImplementationCategory"].Value = this.DefaultServiceRequestImplementationCategoryEnum; + emoAdminSetting[null, "ProblemResolutionCategory"].Value = this.DefaultProblemResolutionCategoryEnum; + + //Processing Logic - Change Incident Status on Reply + emoAdminSetting[smletsExchangeConnectorSettingsClass, "ChangeIncidentStatusOnReply"].Value = this.ChangeIncidentStatusOnReply; + emoAdminSetting[null, "IncidentStatusOnAffectedUserReply"].Value = this.DefaultIncidentStatusOnAUReplyEnum; + emoAdminSetting[null, "IncidentStatusOnAssignedToReply"].Value = this.DefaultIncidentStatusOnATReplyEnum; + emoAdminSetting[null, "IncidentStatusOnRelatedUserReply"].Value = this.DefaultIncidentStatusOnRelReplyEnum; + + //Processing Logic - Related user comment control, if nothing was set ensure we default like the stock connector Analyst Comments + emoAdminSetting[smletsExchangeConnectorSettingsClass, "ExternalPartyCommentTypeIR"].Value = this.ExternalIRCommentType; + emoAdminSetting[smletsExchangeConnectorSettingsClass, "ExternalPartyCommentTypeSR"].Value = this.ExternalSRCommentType; + emoAdminSetting[smletsExchangeConnectorSettingsClass, "ExternalPartyCommentPrivacyIR"].Value = this.ExternalIRCommentPrivate; + emoAdminSetting[smletsExchangeConnectorSettingsClass, "ExternalPartyCommentPrivacySR"].Value = this.ExternalSRCommentPrivate; + + //Processing Logic - Extended Support Groups + try { emoAdminSetting[smletsExchangeConnectorSettingsClass, "CRSupportGroupGUID"].Value = this.ChangeRequestSupportGroupExtensionEnum.Id; } + catch { } + try { emoAdminSetting[smletsExchangeConnectorSettingsClass, "MASupportGroupGUID"].Value = this.ManualActivitySupportGroupExtensionEnum.Id; } + catch { } + try { emoAdminSetting[smletsExchangeConnectorSettingsClass, "PRSupportGroupGUID"].Value = this.ProblemSupportGroupExtensionEnum.Id; } + catch { } + + //File Attachments + emoAdminSetting[smletsExchangeConnectorSettingsClass, "MinimumFileAttachmentSize"].Value = this.MinFileAttachmentSize; + emoAdminSetting[smletsExchangeConnectorSettingsClass, "EnforceFileAttachmentSettings"].Value = this.IsMaxFileSizeAttachmentsEnabled; + + //Default Templates + emoAdminSetting[smletsExchangeConnectorSettingsClass, "DefaultWorkItemType"].Value = this.DefaultWorkItem; + try { emoAdminSetting[smletsExchangeConnectorSettingsClass, "DefaultIncidentTemplateGUID"].Value = this.DefaultIncidentTemplate.Id; } + catch { } + try { emoAdminSetting[smletsExchangeConnectorSettingsClass, "DefaultServiceRequestTemplateGUID"].Value = this.DefaultServiceRequestTemplate.Id; } + catch { } + try { emoAdminSetting[smletsExchangeConnectorSettingsClass, "DefaultChangeRequestTemplateGUID"].Value = this.DefaultChangeRequestTemplate.Id; } + catch { } + try { emoAdminSetting[smletsExchangeConnectorSettingsClass, "DefaultProblemTemplateGUID"].Value = this.DefaultProblemTemplate.Id; } + catch { } + + //Multiple Mailbox Routing/Redirection - foreach entry returned from the form either Create or Update + if (MultipleMailboxesToAdd != null) + { + foreach (string mailObject in MultipleMailboxesToAdd) + { + string[] sections = mailObject.Split(';'); + try + { + //retrieve the mailbox in the loop by its GUID + EnterpriseManagementObject mailboxExists = emg.EntityObjects.GetObject(new Guid(sections[0]), ObjectQueryOptions.Default); + + /*update the mailbox + ##PowerShell SMlets equivalent: + $additionalMailboxClass = Get-SCSMClass -Name "SMLets.Exchange.Connector.AdminSettings.AdditionalMailbox$" + $additionalMailbox = Get-SCSMObject -Class $additionalMailboxClass -filter "MailboxAddress -eq 'user@corp.net'" + Set-SCSMObject -SMObject $additionalMailbox -Property MailboxAddress -Value "differentuser@corp.net" + */ + mailboxExists[smletsExchangeConnectorAdditionalMailboxClass, "MailboxAddress"].Value = sections[1].ToString(); + mailboxExists[smletsExchangeConnectorAdditionalMailboxClass, "MailboxTemplateWorkItemType"].Value = sections[2].ToString(); + mailboxExists[smletsExchangeConnectorAdditionalMailboxClass, "MailboxIRTemplateDisplayName"].Value = sections[3].ToString(); + mailboxExists[smletsExchangeConnectorAdditionalMailboxClass, "MailboxIRTemplateGUID"].Value = new Guid(sections[4]); + mailboxExists[smletsExchangeConnectorAdditionalMailboxClass, "MailboxSRTemplateDisplayName"].Value = sections[5].ToString(); + mailboxExists[smletsExchangeConnectorAdditionalMailboxClass, "MailboxSRTemplateGUID"].Value = new Guid(sections[6]); + mailboxExists[smletsExchangeConnectorAdditionalMailboxClass, "MailboxCRTemplateDisplayName"].Value = sections[7].ToString(); + mailboxExists[smletsExchangeConnectorAdditionalMailboxClass, "MailboxCRTemplateGUID"].Value = new Guid(sections[8]); + mailboxExists[smletsExchangeConnectorAdditionalMailboxClass, "MailboxPRTemplateDisplayName"].Value = sections[9].ToString(); + mailboxExists[smletsExchangeConnectorAdditionalMailboxClass, "MailboxPRTemplateGUID"].Value = new Guid(sections[10]); + mailboxExists.Commit(); + } + catch + { + /*mailbox doesn't exist, create it + ##PowerShell SMlets equivalent: + $additionalMailboxClass = Get-SCSMClass -Name "SMLets.Exchange.Connector.AdminSettings.AdditionalMailbox$" + New-SCSMObject -Class $additionalMailboxClass -propertyhashtable @{} + */ + CreatableEnterpriseManagementObject emoMailboxObject = new CreatableEnterpriseManagementObject(emg, smletsExchangeConnectorAdditionalMailboxClass); + emoMailboxObject[smletsExchangeConnectorAdditionalMailboxClass, "MailboxID"].Value = new Guid(sections[0]); + emoMailboxObject[smletsExchangeConnectorAdditionalMailboxClass, "MailboxAddress"].Value = sections[1].ToString(); + emoMailboxObject[smletsExchangeConnectorAdditionalMailboxClass, "MailboxTemplateWorkItemType"].Value = sections[2].ToString(); + emoMailboxObject[smletsExchangeConnectorAdditionalMailboxClass, "MailboxIRTemplateDisplayName"].Value = sections[3].ToString(); + emoMailboxObject[smletsExchangeConnectorAdditionalMailboxClass, "MailboxIRTemplateGUID"].Value = new Guid(sections[4]); + emoMailboxObject[smletsExchangeConnectorAdditionalMailboxClass, "MailboxSRTemplateDisplayName"].Value = sections[5].ToString(); + emoMailboxObject[smletsExchangeConnectorAdditionalMailboxClass, "MailboxSRTemplateGUID"].Value = new Guid(sections[6]); + emoMailboxObject[smletsExchangeConnectorAdditionalMailboxClass, "MailboxCRTemplateDisplayName"].Value = sections[7].ToString(); + emoMailboxObject[smletsExchangeConnectorAdditionalMailboxClass, "MailboxCRTemplateGUID"].Value = new Guid(sections[8]); + emoMailboxObject[smletsExchangeConnectorAdditionalMailboxClass, "MailboxPRTemplateDisplayName"].Value = sections[9].ToString(); + emoMailboxObject[smletsExchangeConnectorAdditionalMailboxClass, "MailboxPRTemplateGUID"].Value = new Guid(sections[10]); + emoMailboxObject.Commit(); + } + } + } + + //Multiple Mailbox Routing/Redirection - foreach entry returned from the form Delete + if (MultipleMailboxesToRemove != null) + { + try + { + /*SMLets - Remove-SCSMObject + SMLets requires the -Force parameter when the object in question does not derive from the Configuration Item class + ##PowerShell SMlets equivalent: + $additionalMailboxClass = Get-SCSMClass -Name "SMLets.Exchange.Connector.AdminSettings.AdditionalMailbox$" + $additionalMailbox = Get-SCSMObject -Class $additionalMailboxClass -filter "MailboxAddress -eq 'user@corp.net'" + $additionalMailbox | Remove-SCSMObject -Force + https://github.com/SMLets/SMLets/blob/55f1bac3bc7a7011a461b24f6d7787ba89fe2624/SMLets.Shared/Code/EntityObjects.cs#L1402 + */ + IncrementalDiscoveryData idd = new IncrementalDiscoveryData(); + foreach (string mailboxToDeleteGuid in MultipleMailboxesToRemove) + { + EnterpriseManagementObject mailboxToDelete = emg.EntityObjects.GetObject(new Guid(mailboxToDeleteGuid), ObjectQueryOptions.Default); + if (mailboxToDelete != null) + { + //mark the object for deletion + idd.Remove(mailboxToDelete); + } + } + //delete the mailbox object(s) + idd.Commit(emg); + } + catch + { + + } + } + + //Keywords + emoAdminSetting[smletsExchangeConnectorSettingsClass, "SCSMKeywordFrom"].Value = this.KeywordFrom; + emoAdminSetting[smletsExchangeConnectorSettingsClass, "SCSMKeywordAcknowledge"].Value = this.KeywordAcknowledge; + emoAdminSetting[smletsExchangeConnectorSettingsClass, "SCSMKeywordReactivate"].Value = this.KeywordReactivate; + emoAdminSetting[smletsExchangeConnectorSettingsClass, "SCSMKeywordResolved"].Value = this.KeywordResolve; + emoAdminSetting[smletsExchangeConnectorSettingsClass, "SCSMKeywordClosed"].Value = this.KeywordClose; + emoAdminSetting[smletsExchangeConnectorSettingsClass, "SCSMKeywordHold"].Value = this.KeywordHold; + emoAdminSetting[smletsExchangeConnectorSettingsClass, "SCSMKeywordTake"].Value = this.KeywordTake; + emoAdminSetting[smletsExchangeConnectorSettingsClass, "SCSMKeywordCancelled"].Value = this.KeywordCancel; + emoAdminSetting[smletsExchangeConnectorSettingsClass, "SCSMKeywordCompleted"].Value = this.KeywordComplete; + emoAdminSetting[smletsExchangeConnectorSettingsClass, "SCSMKeywordSkipped"].Value = this.KeywordSkip; + emoAdminSetting[smletsExchangeConnectorSettingsClass, "SCSMKeywordApprove"].Value = this.KeywordApprove; + emoAdminSetting[smletsExchangeConnectorSettingsClass, "SCSMKeywordReject"].Value = this.KeywordReject; + emoAdminSetting[smletsExchangeConnectorSettingsClass, "SCSMKeywordAnnouncement"].Value = this.KeywordAnnouncement; + emoAdminSetting[smletsExchangeConnectorSettingsClass, "SCOMKeywordHealth"].Value = this.KeywordHealth; + emoAdminSetting[smletsExchangeConnectorSettingsClass, "SCSMKeywordPrivate"].Value = this.KeywordPrivate; + + //Cireson Integration + emoAdminSetting[smletsExchangeConnectorSettingsClass, "EnableCiresonIntegration"].Value = this.IsCiresonIntegrationEnabled; + emoAdminSetting[smletsExchangeConnectorSettingsClass, "CiresonSearchKnowledgeBase"].Value = this.IsCiresonKBSearchEnabled; + emoAdminSetting[smletsExchangeConnectorSettingsClass, "CiresonSearchRequestOfferings"].Value = this.IsCiresonROSearchEnabled; + emoAdminSetting[smletsExchangeConnectorSettingsClass, "CiresonPortalURL"].Value = this.CiresonPortalURL; + if (!(this.CiresonPortalURL.EndsWith("/"))) { emoAdminSetting[smletsExchangeConnectorSettingsClass, "CiresonPortalURL"].Value = this.CiresonPortalURL + "/"; } + else { emoAdminSetting[smletsExchangeConnectorSettingsClass, "CiresonPortalURL"].Value = this.CiresonPortalURL; } + emoAdminSetting[smletsExchangeConnectorSettingsClass, "NumberOfWordsToMatchFromEmailToCiresonRequestOffering"].Value = this.MinWordCountToSuggestRO; + emoAdminSetting[smletsExchangeConnectorSettingsClass, "NumberOfWordsToMatchFromEmailToCiresonKnowledgeArticle"].Value = this.MinWordCountToSuggestKA; + emoAdminSetting[smletsExchangeConnectorSettingsClass, "EnableSetFirstResponseDateOnSuggestions"].Value = this.IsCiresonFirstResponseDateOnSuggestionsEnabled; + + //Announcements + emoAdminSetting[smletsExchangeConnectorSettingsClass, "EnableAnnouncements"].Value = this.IsAnnouncementIntegrationEnabled; + emoAdminSetting[smletsExchangeConnectorSettingsClass, "EnableSCSMAnnouncements"].Value = this.IsSCSMAnnouncementsEnabled; + emoAdminSetting[smletsExchangeConnectorSettingsClass, "SCSMAnnouncementApprovedMemberType"].Value = this.AuthorizedAnnouncementApproverType; + emoAdminSetting[smletsExchangeConnectorSettingsClass, "EnableCiresonSCSMAnnouncements"].Value = this.IsCiresonAnnouncementsEnabled; + emoAdminSetting[smletsExchangeConnectorSettingsClass, "AnnouncementKeywordLow"].Value = this.LowPriorityAnnouncementKeyword; + emoAdminSetting[smletsExchangeConnectorSettingsClass, "AnnouncementKeywordMedium"].Value = this.MediumPriorityAnnouncementKeyword; + emoAdminSetting[smletsExchangeConnectorSettingsClass, "AnnouncementKeywordHigh"].Value = this.HighPriorityAnnouncementKeyword; + try { decimal.Parse(this.LowPriorityExpiresInHours); emoAdminSetting[smletsExchangeConnectorSettingsClass, "AnnouncementPriorityLowExpirationInHours"].Value = this.LowPriorityExpiresInHours; } + catch { emoAdminSetting[smletsExchangeConnectorSettingsClass, "AnnouncementPriorityLowExpirationInHours"].Value = 0; } + try { decimal.Parse(this.MediumPriorityExpiresInHours); emoAdminSetting[smletsExchangeConnectorSettingsClass, "AnnouncementPriorityNormalExpirationInHours"].Value = this.MediumPriorityExpiresInHours; } + catch { emoAdminSetting[smletsExchangeConnectorSettingsClass, "AnnouncementPriorityNormalExpirationInHours"].Value = 0; } + try { decimal.Parse(this.HighPriorityExpiresInHours); emoAdminSetting[smletsExchangeConnectorSettingsClass, "AnnouncementPriorityCriticalExpirationInHours"].Value = this.HighPriorityExpiresInHours; } + catch { emoAdminSetting[smletsExchangeConnectorSettingsClass, "AnnouncementPriorityCriticalExpirationInHours"].Value = 0; } + 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 { } + + //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 { } + + //Artifical Intelligence - enabled/disabled + emoAdminSetting[smletsExchangeConnectorSettingsClass, "EnableArtificialIntelligence"].Value = this.IsArtificialIntelligenceEnabled; + + //Artifical Intelligence - Azure Cognitive Services + emoAdminSetting[smletsExchangeConnectorSettingsClass, "EnableACSForNewWorkItem"].Value = this.IsAzureCognitiveServicesEnabled; + emoAdminSetting[smletsExchangeConnectorSettingsClass, "ACSTextAnalyticsRegion"].Value = this.ACSRegion; + emoAdminSetting[smletsExchangeConnectorSettingsClass, "ACSTextAnalyticsAPIKey"].Value = this.AzureCognitiveServicesAPIKey; + emoAdminSetting[smletsExchangeConnectorSettingsClass, "ACSPriorityScoringBoundaries"].Value = this.AzureCognitiveServicesBoundaries.ToString(); + try { decimal.Parse(this.MinimumPercentToCreateServiceRequest); emoAdminSetting[smletsExchangeConnectorSettingsClass, "MinACSSentimentToCreateSR"].Value = this.MinimumPercentToCreateServiceRequest; } + catch { emoAdminSetting[smletsExchangeConnectorSettingsClass, "MinACSSentimentToCreateSR"].Value = 95; } + try { emoAdminSetting[smletsExchangeConnectorSettingsClass, "ACSSentimentScoreIncidentClassExtensionGUID"].Value = this.ACSIncidentSentimentDecExtension.Id; } + catch { } + try { emoAdminSetting[smletsExchangeConnectorSettingsClass, "ACSSentimentScoreServiceRequestClassExtensionGUID"].Value = this.ACSServiceRequestSentimentDecExtension.Id; } + catch { } + emoAdminSetting[smletsExchangeConnectorSettingsClass, "EnableACSForCiresonKASuggestion"].Value = this.IsACSForKAEnabled; + emoAdminSetting[smletsExchangeConnectorSettingsClass, "EnableACSForCiresonROSuggestion"].Value = this.IsACSForROEnabled; + emoAdminSetting[smletsExchangeConnectorSettingsClass, "EnableACSPriorityScoring"].Value = this.IsACSForPriorityScoringEnabled; + + //Artifical Intelligence - Keyword Match + emoAdminSetting[smletsExchangeConnectorSettingsClass, "EnableKeywordMatchForNewWorkItem"].Value = this.IsKeywordMatchingEnabled; + emoAdminSetting[smletsExchangeConnectorSettingsClass, "KeywordMatchRegexForNewWorkItem"].Value = this.KeywordMatchingRegexPattern; + emoAdminSetting[smletsExchangeConnectorSettingsClass, "KeywordMatchWorkItemType"].Value = this.KeywordWorkItemTypeOverride; + + //Artifical Intelligence - Azure Machine Learning + emoAdminSetting[smletsExchangeConnectorSettingsClass, "EnableAML"].Value = this.IsAzureMachineLearningEnabled; + emoAdminSetting[smletsExchangeConnectorSettingsClass, "AMLAPIKey"].Value = this.AzureMachineLearningAPIKey; + emoAdminSetting[smletsExchangeConnectorSettingsClass, "AMLurl"].Value = this.AzureMachineLearningURL; + try { decimal.Parse(this.AzureMachineLearningWIConfidence); emoAdminSetting[smletsExchangeConnectorSettingsClass, "AMLMinConfidenceWorkItemType"].Value = this.AzureMachineLearningWIConfidence; } + catch { emoAdminSetting[smletsExchangeConnectorSettingsClass, "AMLMinConfidenceWorkItemType"].Value = 95; } + try { decimal.Parse(this.AzureMachineLearningClassificationConfidence); emoAdminSetting[smletsExchangeConnectorSettingsClass, "AMLMinConfidenceWorkItemClassification"].Value = this.AzureMachineLearningClassificationConfidence; } + catch { emoAdminSetting[smletsExchangeConnectorSettingsClass, "AMLMinConfidenceWorkItemClassification"].Value = 95; } + try { decimal.Parse(this.AzureMachineLearningSupportGroupConfidence); emoAdminSetting[smletsExchangeConnectorSettingsClass, "AMLMinConfidenceWorkItemSupportGroup"].Value = this.AzureMachineLearningSupportGroupConfidence; } + catch { emoAdminSetting[smletsExchangeConnectorSettingsClass, "AMLMinConfidenceWorkItemSupportGroup"].Value = 95; } + + try { emoAdminSetting[smletsExchangeConnectorSettingsClass, "AMLIncidentConfidenceClassExtensionGUID"].Value = this.AMLIncidentConfidenceDecExtension.Id; } + catch { } + try { emoAdminSetting[smletsExchangeConnectorSettingsClass, "AMLIRWorkItemTypePredictionClassExtensionGUID"].Value = this.AMLIncidentWIPredictionExtension.Id; } + catch { } + try { emoAdminSetting[smletsExchangeConnectorSettingsClass, "AMLIncidentClassificationConfidenceClassExtensionGUID"].Value = this.AMLIncidentClassificationConfidenceDecExtension.Id; } + catch { } + try { emoAdminSetting[smletsExchangeConnectorSettingsClass, "AMLIncidentSupportGroupConfidenceClassExtensionGUID"].Value = this.AMLIncidentSupportGroupConfidenceDecExtension.Id; } + catch { } + try { emoAdminSetting[smletsExchangeConnectorSettingsClass, "AMLIncidentClassificationPredictionClassExtensionGUID"].Value = this.AMLIncidentClassificationPredictionEnumExtension.Id; } + catch { } + try { emoAdminSetting[smletsExchangeConnectorSettingsClass, "AMLIncidentSupportGroupPredictionClassExtensionGUID"].Value = this.AMLIncidentSupportGroupPredictionEnumExtension.Id; } + catch { } + + try { emoAdminSetting[smletsExchangeConnectorSettingsClass, "AMLServiceRequestConfidenceClassExtensionGUID"].Value = this.AMLServiceRequestConfidenceDecExtension.Id; } + catch { } + try { emoAdminSetting[smletsExchangeConnectorSettingsClass, "AMLSRWorkItemTypePredictionClassExtensionGUID"].Value = this.AMLServiceRequestWIPredictionExtension.Id; } + catch { } + try { emoAdminSetting[smletsExchangeConnectorSettingsClass, "AMLServiceRequestClassificationConfidenceClassExtensionGUID"].Value = this.AMLServiceRequestClassificationConfidenceDecExtension.Id; } + catch { } + try { emoAdminSetting[smletsExchangeConnectorSettingsClass, "AMLServiceRequestSupportGroupConfidenceClassExtensionGUID"].Value = this.AMLServiceRequestSupportGroupConfidenceDecExtension.Id; } + catch { } + try { emoAdminSetting[smletsExchangeConnectorSettingsClass, "AMLServiceRequestClassificationPredictionClassExtensionGUID"].Value = this.AMLServiceRequestClassificationPredictionEnumExtension.Id; } + catch { } + try { emoAdminSetting[smletsExchangeConnectorSettingsClass, "AMLServiceRequestSupportGroupPredictionClassExtensionGUID"].Value = this.AMLServiceRequestSupportGroupPredictionEnumExtension.Id; } + catch { } + + //azure translate + emoAdminSetting[smletsExchangeConnectorSettingsClass, "EnableACSTranslate"].Value = this.IsAzureTranslationEnabled; + emoAdminSetting[smletsExchangeConnectorSettingsClass, "ACSTranslateAPIKey"].Value = this.AzureTranslateAPIKey; + emoAdminSetting[smletsExchangeConnectorSettingsClass, "ACSTranslateDefaultLanguageCode"].Value = this.AzureTranslateDefaultLanguageCode; + + //Update the MP + emoAdminSetting.Commit(); + this.WizardResult = WizardResult.Success; + } + } +} \ No newline at end of file diff --git a/ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/AdminTaskHandler.cs b/ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/AdminTaskHandler.cs new file mode 100644 index 00000000..2b27c928 --- /dev/null +++ b/ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/AdminTaskHandler.cs @@ -0,0 +1,91 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading; +using System.Windows.Threading; +using System.Windows; +using Microsoft.EnterpriseManagement; +using Microsoft.EnterpriseManagement.Common; +using Microsoft.EnterpriseManagement.ConnectorFramework; +using Microsoft.EnterpriseManagement.ConsoleFramework; +using Microsoft.EnterpriseManagement.UI.SdkDataAccess; +using Microsoft.EnterpriseManagement.UI.DataModel; +using Microsoft.EnterpriseManagement.UI.WpfWizardFramework; +using Microsoft.EnterpriseManagement.UI.SdkDataAccess.DataAdapters; +using Microsoft.EnterpriseManagement.UI.FormsInfra; +using Microsoft.EnterpriseManagement.UI.Extensions.Shared; +using Microsoft.EnterpriseManagement.GenericForm; +using Microsoft.EnterpriseManagement.Configuration; +using Microsoft.Win32; + +namespace SMLetsExchangeConnectorSettingsUI +{ + internal class AdminTaskHandler : ConsoleCommand + { + public AdminTaskHandler() + { + + } + + public override void ExecuteCommand(IList nodes, NavigationModelNodeTask task, ICollection parameters) + { + /* + This GUID is generated automatically when you import the Management Pack with the singleton admin setting class in it. + You can get this GUID by running a query like: + Select BaseManagedEntityID, FullName where FullName like ‘%%’ + where the GUID you want is returned in the BaseManagedEntityID column in the result set + */ + /*In this above example I imported the MP, and then used: + Select BaseManagedEntityID, FullName + From BaseManagedEntity + where FullName like 'SMLets%' + against the ServiceManager DB to figure out the following strSingletonBaseManagedObjectID. Per + https://blogs.technet.microsoft.com/servicemanager/2011/05/26/getting-management-pack-elements-using-the-sdk/ + the id is always unique and never changes as its based on the MP ID, Element Names, and the key token. + */ + + String strSingletonBaseManagedObjectID = "a0022e87-75a8-65ee-4581-d923ff06a564"; + + //Get the server name to connect to and connect to the server + String strServerName = Registry.GetValue("HKEY_CURRENT_USER\\Software\\Microsoft\\System Center\\2010\\Service Manager\\Console\\User Settings", "SDKServiceMachine", "localhost").ToString(); + EnterpriseManagementGroup emg = new EnterpriseManagementGroup(strServerName); + + //Get the Object using the GUID from above – since this is a singleton object we can get it by GUID + EnterpriseManagementObject emoAdminSetting = emg.EntityObjects.GetObject(new Guid(strSingletonBaseManagedObjectID), ObjectQueryOptions.Default); + + //Create a new "wizard" (also used for property dialogs as in this case), set the title bar, create the data, and add the pages + WizardStory wizard = new WizardStory(); + wizard.WizardWindowTitle = "SMLets Exchange Connector Settings v2.0"; + WizardData data = new AdminSettingWizardData(emoAdminSetting); + wizard.WizardData = data; + wizard.AddLast(new WizardStep("General", typeof(GeneralSettingsForm), wizard.WizardData)); + wizard.AddLast(new WizardStep("DLL", typeof(DLLForm), wizard.WizardData)); + wizard.AddLast(new WizardStep("Processing Logic", typeof(ProcessingLogicForm), wizard.WizardData)); + wizard.AddLast(new WizardStep("File Attachments", typeof(FileAttachmentForm), wizard.WizardData)); + wizard.AddLast(new WizardStep("Templates", typeof(TemplateForm), wizard.WizardData)); + wizard.AddLast(new WizardStep("Multi-Mailbox", typeof(MultipleMailboxes), wizard.WizardData)); + wizard.AddLast(new WizardStep("Parsing Keywords", typeof(KeywordsForm), wizard.WizardData)); + wizard.AddLast(new WizardStep("Cireson", typeof(CiresonIntegrationForm), wizard.WizardData)); + wizard.AddLast(new WizardStep("Announcements", typeof(AnnouncementsForm), wizard.WizardData)); + wizard.AddLast(new WizardStep("SCOM", typeof(SCOMIntegrationForm), wizard.WizardData)); + wizard.AddLast(new WizardStep("A.I.", typeof(ArtificialIntelligence), wizard.WizardData)); + wizard.AddLast(new WizardStep("Translation", typeof(AzureTranslate), wizard.WizardData)); + wizard.AddLast(new WizardStep("About", typeof(AboutForm), wizard.WizardData)); + + //Show the property page + PropertySheetDialog wizardWindow = new PropertySheetDialog(wizard); + wizardWindow.Width = 1100; + wizardWindow.Height = 700; + + //Update the view when done so the new values are shown + bool? dialogResult = wizardWindow.ShowDialog(); + if (dialogResult.HasValue && dialogResult.Value) + { + RequestViewRefresh(); + } + } + + } +} diff --git a/ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/AssemblyImages/GitHub120x120.png b/ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/AssemblyImages/GitHub120x120.png new file mode 100644 index 0000000000000000000000000000000000000000..ea6ff545a246caa64074ba809bbc86fcb8589071 GIT binary patch literal 4268 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 XLyRvu{aX3a{{tgEGu={c*U0|?Dtn-9 literal 0 HcmV?d00001 diff --git a/ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/AssemblyImages/SCOM256x256.png b/ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/AssemblyImages/SCOM256x256.png new file mode 100644 index 0000000000000000000000000000000000000000..301fcfd4d8d4616c5571252c30f54f8cc27a6355 GIT binary patch literal 29178 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 R_5uI^002ovPDHLkV1mG*^eO-V literal 0 HcmV?d00001 diff --git a/ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/AssemblyImages/ViennaLogo.png b/ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/AssemblyImages/ViennaLogo.png new file mode 100644 index 0000000000000000000000000000000000000000..f6d8177f282cc0b889fed11bc96b4f99d79be9e3 GIT binary patch literal 22150 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 KMNUMnLSTYNgK_r& literal 0 HcmV?d00001 diff --git a/ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/AssemblyImages/announcement.png b/ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/AssemblyImages/announcement.png new file mode 100644 index 0000000000000000000000000000000000000000..b5286f8d8e1b850ff02120f8e67d26c25134899a GIT binary patch literal 12702 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 literal 0 HcmV?d00001 diff --git a/ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/AssemblyImages/azureCognitiveServicesIcon150x150.png b/ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/AssemblyImages/azureCognitiveServicesIcon150x150.png new file mode 100644 index 0000000000000000000000000000000000000000..72266611a29358ef1a91de7f77d8413888d40573 GIT binary patch literal 18585 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 literal 0 HcmV?d00001 diff --git a/ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/AssemblyImages/ciresonLogo.png b/ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/AssemblyImages/ciresonLogo.png new file mode 100644 index 0000000000000000000000000000000000000000..3f6271114f793e9cbe0bb3ec91d55773c92be1d1 GIT binary patch literal 18860 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 literal 0 HcmV?d00001 diff --git a/ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/AssemblyImages/outlookMeeting.png b/ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/AssemblyImages/outlookMeeting.png new file mode 100644 index 0000000000000000000000000000000000000000..15515114721da64be50218bc2d8d2f78f82d6453 GIT binary patch literal 3620 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 + + + + \ No newline at end of file diff --git a/ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/Forms/AboutForm.xaml.cs b/ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/Forms/AboutForm.xaml.cs new file mode 100644 index 00000000..9d6175e2 --- /dev/null +++ b/ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/Forms/AboutForm.xaml.cs @@ -0,0 +1,47 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; +using Microsoft.EnterpriseManagement.UI.WpfWizardFramework; +using Microsoft.EnterpriseManagement.UI.DataModel; +using Microsoft.EnterpriseManagement.UI; + +namespace SMLetsExchangeConnectorSettingsUI +{ + /// + /// Interaction logic for AboutForm.xaml + /// + + public partial class AboutForm : WizardRegularPageBase + { + private AboutForm adminSettingWizardData = null; + + public AboutForm(WizardData wizardData) + { + InitializeComponent(); + this.DataContext = 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); + } + + } +} \ No newline at end of file diff --git a/ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/Forms/AnnouncementsForm.xaml b/ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/Forms/AnnouncementsForm.xaml new file mode 100644 index 00000000..206db78b --- /dev/null +++ b/ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/Forms/AnnouncementsForm.xaml @@ -0,0 +1,61 @@ + + + + + + \ No newline at end of file diff --git a/ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/Forms/AnnouncementsForm.xaml.cs b/ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/Forms/AnnouncementsForm.xaml.cs new file mode 100644 index 00000000..3255de61 --- /dev/null +++ b/ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/Forms/AnnouncementsForm.xaml.cs @@ -0,0 +1,49 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; +using Microsoft.EnterpriseManagement.UI.WpfWizardFramework; +using Microsoft.EnterpriseManagement.UI.DataModel; +using Microsoft.EnterpriseManagement.UI; + +namespace SMLetsExchangeConnectorSettingsUI +{ + /// + /// Interaction logic for AnnouncementsForm.xaml + /// + + public partial class AnnouncementsForm : WizardRegularPageBase + { + //1. Create a blank Instance of AdminSettingsWizardData called "settings" + AdminSettingWizardData settings; + + private AnnouncementsForm adminSettingWizardData = null; + + public AnnouncementsForm(WizardData wizardData) + { + //2. Turn the blank instance of AdminSettingsWizardData into the one being used when the form was loaded + settings = wizardData as AdminSettingWizardData; + + InitializeComponent(); + this.DataContext = wizardData; + this.adminSettingWizardData = this.DataContext as AnnouncementsForm; + + //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) + { + + } + } +} diff --git a/ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/Forms/ArtificialIntelligence.xaml b/ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/Forms/ArtificialIntelligence.xaml new file mode 100644 index 00000000..320bf028 --- /dev/null +++ b/ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/Forms/ArtificialIntelligence.xaml @@ -0,0 +1,333 @@ + + + + +