using System; using Disco.Data.Repository; using Disco.Services.Plugins; using Disco.Services.Tasks; namespace Disco.Plugins.ServiceTracker { [Plugin( Id = "Disco.Plugins.ServiceTracker", Name = "Service Tracker", Author = "Jess Rogerson", Url = "https://gitea.hideawaygaming.com.au/jessikitty/disco-service-tracker-plugin" )] public class ServiceTrackerPlugin : Plugin { public override void Initialize(DiscoDataContext Database) { } public override void Install(DiscoDataContext Database, ScheduledTaskStatus Status) { Status.UpdateStatus(0, "Installing Service Tracker Plugin..."); var dataPath = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "App_Data", "Plugins", "Disco.Plugins.ServiceTracker"); if (!System.IO.Directory.Exists(dataPath)) System.IO.Directory.CreateDirectory(dataPath); var configPath = System.IO.Path.Combine(dataPath, "config.json"); if (!System.IO.File.Exists(configPath)) { var defaultConfig = Models.ServiceTrackerConfig.CreateDefault(); var json = Newtonsoft.Json.JsonConvert.SerializeObject(defaultConfig, Newtonsoft.Json.Formatting.Indented); System.IO.File.WriteAllText(configPath, json); } var ticketsPath = System.IO.Path.Combine(dataPath, "tickets.json"); if (!System.IO.File.Exists(ticketsPath)) System.IO.File.WriteAllText(ticketsPath, "[]"); Status.UpdateStatus(100, "Installation Complete"); } public override void Uninstall(DiscoDataContext Database, bool UninstallData, ScheduledTaskStatus Status) { Status.UpdateStatus(0, "Uninstalling Service Tracker Plugin..."); if (UninstallData) { var dataPath = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "App_Data", "Plugins", "Disco.Plugins.ServiceTracker"); if (System.IO.Directory.Exists(dataPath)) System.IO.Directory.Delete(dataPath, true); } Status.UpdateStatus(100, "Uninstallation Complete"); } } }