using Disco.Data.Repository; using Disco.Services.Plugins; using Disco.Services.Tasks; namespace Disco.Plugins.ADCompare { [Plugin( Id = "Disco.Plugins.ADCompare", Name = "AD Compare", Author = "Jess Rogerson", Url = "https://gitea.hideawaygaming.com.au/jessikitty/disco-ad-compare-plugin" )] public class ADComparePlugin : Plugin { public override void Initialize(DiscoDataContext Database) { // Register UIExtension features so they appear on Device and User pages. // Manifest is a PluginFeatureManifest; PluginManifest holds all features. var pluginManifest = Manifest.PluginManifest; if (pluginManifest != null && pluginManifest.Features != null) { foreach (var feature in pluginManifest.Features) { using (var instance = feature.CreateInstance()) { var deviceExt = instance as Features.DeviceUIExtension; if (deviceExt != null) { deviceExt.Register(); continue; } var userExt = instance as Features.UserUIExtension; if (userExt != null) { userExt.Register(); continue; } } } } } public override void Install(DiscoDataContext Database, ScheduledTaskStatus Status) { Status.UpdateStatus(0, "Installing AD Compare Plugin..."); Status.UpdateStatus(100, "Installation Complete"); } public override void Uninstall(DiscoDataContext Database, bool UninstallData, ScheduledTaskStatus Status) { Status.UpdateStatus(0, "Uninstalling AD Compare Plugin..."); Status.UpdateStatus(100, "Uninstallation Complete"); } } }