Skip to main content

Plugin API

DieThe Serverinstallationserver desinstallation of the SCCM ManagersManager liefertprovides einean Schnittstelleinterface zurfor Eigenentwicklungself-development vonof Pluginsplugins. mit.This Dazurequires wird einean IDE (z.B.e.g. Visual Studio) zurfor Entwicklungthe vondevelopment of C-Sharp-AnwendungenSharp mitapplications demwith Grafikframeworkthe WPFgraphics benötigt.framework DesWPF. weiteren wirdFurthermore, .NET Framework 4.6.1 vorausgesetzt.is required.

EntwicklungDevelopment

EinA neunewly erstelltescreated Pluginplugin mussmust alsbe Klassenbibliothekcompiled as a class library (DLL-Datei)DLL kompiliertfile) werdenand undimplement dasthe InterfaceIActionPlugin IActionPlugininterface. implementieren.The Dasinterface Interfaceis befindet sichlocated in derthe Klassenbibliothekclass library ActionPanel.PluginBase.dll. ZusätzlichIn wirdaddition, nochthe dieclass Klassenbibliotheklibrary ActionPanel.Common.dll mitgeliefert.is Darinalso sindsupplied. einigeIt nützlichecontains Helferklassensome enthalten.useful helper classes.

api-folder_thumb_480_0.png

ZurTo Einbindungintegrate desthe neunewly entwickeltendeveloped Pluginsplugin, musssimply lediglichcopy diethe entsprechendecorresponding DLL-DateiDLL infile dasinto Pluginverzeichnisthe desplugin directory of the SCCM Managers kopiert werden:Manager:

{Installationsverzechnis}installation path}\Web\SCCMManager\Resources\Assemblies\

DanachAfter mussthat diethe Startmenüverknüpfungstart menu shortcut "Update Plugin Versions" ausgeführthas werden,to damitbe dasexecuted, neueso Plugin,that zurthe Konfigurationnew plugin is available for configuration in derthe Administrationsoberflächeadministration desinterface of the SCCM Managers, zur Verfügung steht.Manager.

Interface IActionPlugin

FolgendThe wirdfollowing dasis Interfacethe interface IActionPlugin erläutert.explains.

Eigenschaften

Features
Name TypType BeschreibungDescription AutomatischAutomatically gesetztSet
Title string TitelTitle lautaccording Action-Konfigurationto action configuration JaYes
Argument string Argument lautaccording Action-Konfigurationto action configuration JaYes
SelectedComputers ObservableCollection<IComputerItem> HierAll werdencomputers alleselected zurat Laufzeitruntime ausgewähltenare Computerlisted aufgelistethere JaYes
IsSingleton bool Singleton lautaccording Action-Konfigurationto action configuration JaYes
ApplicationVariables IApplicationVariables PluginvariablenPlugin ausvariables derfrom Datenbank,the hierüberdatabase, könnenvalues auchcan Wertealso modifiziertbe werdenmodified here JaYes
ActionPanelControl IActionPanel ZugriffAccess aufto diversevarious Funktionenfunctions desof the SCCM ManagersManager undand aufto denthe WebService JaYes
LanguageTranslater ILanguageTranslater ZugriffAccess aufto diethe Sprachenübersetzungenlanguage destranslations Pluginsof the plugin JaYes
PluginContainer IPluginContainer
JaYes
SelectedComputerType SelectedComputerType (Enum)
NeinNo
SingletonBehavior SingletonBehavior (Enum) Verhalten,Behavior wennwhen dasthe Pluginplugin einis zweitesstarted Mala gestartetsecond wirdtime undand dessenits Singleton-Eigenschaftsingleton aktiviertproperty istis enabled NeinNo
PluginType PluginTypes (Enum) ArtType desof Plugins.plugin. MöglichePossible Werte:values: NeinNo
ContentControl UserControl UserControl,UserControl dasto imbe displayed as interface in SCCM Manager alsif Oberflächethe angezeigtplugin werdentype soll,is wenna esUserControl sich bei der Pluginart um ein UserControl-Plugin handeltplugin NeinNo
Methods
Name Rückgabe-TypReturn Type ÜbergabeparameterTransfer Parameter BeschreibungDescription
Initialize bool
InitialisierungInitialization desof Plugins.the plugin.
OnApplicationExit void
Event wennwhen derthe SCCM Manager beendetis wird.terminated.
UpdateArgument void string argument  WennIf eina Pluginplugin einwas zweitesstarted Mala alssecond Singletontime gestartetas wurde,a wirdsingleton, diesethis Methodemethod aufgerufen.is called.
InvokeFunction bool string function, string[] parameters  ÜbergabeTransfer derof konfiguriertenthe Funktionconfigured undfunction Parameter.and parameters.
ImplementierungImplementation
using System.Collections.ObjectModel;
using System.Linq;
using System.Windows.Controls;
using ActionPanel.PluginBase;
using ActionPanel.PluginBase.Enums;
using ActionPanel.PluginBase.Interfaces;
using ClientActionsPlugin.View;
using FuncLib;

namespace ClientActionsPlugin
{
    class ActionPanelPlugin : IActionPlugin
    {
        private ActionUserControl m_control;

        public string Title { get; set; }

        public bool IsSingleton { get; set; }

        public string Argument { get; set; }

        public ObservableCollection<IComputerItem> SelectedComputers { get; set; }

        public SelectedComputersType SelectedComputerType { get; set; } = SelectedComputersType.Single;

        public SingletonBehavior SingletonBehavior { get; } = SingletonBehavior.UpdateArgument;

        public PluginTypes PluginType { get; } = PluginTypes.ExecuterUserControl;

        public UserControl ContentControl => m_control;

        public bool Initialize()
        {
            m_control = new ActionUserControl(this);
            if (m_control != null)
            {
                m_control.Title = Title;
                m_control.SelectedComputer = SelectedComputers?.FirstOrDefault()?.Name;
                m_control.Init();
            }

            return true;
        }

        public void OnApplicationExit()
        {
            
        }

        public void UpdateArgument(string argument)
        {
            Argument = argument;
            m_control.SelectedComputer = SelectedComputers?.FirstOrDefault()?.Name;
            m_control.Init();
        }

        public bool InvokeFunction(string function, string[] parameters)
        {
            bool force = (parameters != null && FLibCMD.CheckForCommandLineKey(parameters, "force", false));

            if (function == Functions.SHUTDOWN)
            {
                return m_control.ShutdownComputer(force);
            }
            else if (function == Functions.RESTART)
            {
                return m_control.RestartComputer(force);
            }
            else if (function == Functions.WAKEUP)
            {
                return m_control.WakeUpComputer();
            }
            else
            {
                return false;
            }
        }

        public IApplicationVariables ApplicationVariables { get; set; }

        public IActionPanel ActionPanelControl { get; set; }

        public ILanguageTranslater LanguageTranslater { get; set; }

        public IPluginContainer PluginContainer { get; set; }
    }
}