Files
Disco/Disco.Services/Plugins/Plugin.cs
T
2017-03-25 15:29:51 +11:00

30 lines
1.0 KiB
C#

using System;
using Disco.Data.Repository;
using Disco.Services.Tasks;
namespace Disco.Services.Plugins
{
public abstract class Plugin : IDisposable
{
public PluginManifest Manifest {get; internal set;}
#region Lifecycle
// Events/Triggers for Custom Plugin Initialization (Optional)
public virtual void Install(DiscoDataContext Database, ScheduledTaskStatus Status) { return; }
public virtual void Initialize(DiscoDataContext Database) { return; }
public virtual void Uninstall(DiscoDataContext Database, bool UninstallData, ScheduledTaskStatus Status) { return; }
public virtual void AfterUpdate(DiscoDataContext Database, PluginManifest PreviousManifest) { return; }
#endregion
public virtual void Dispose()
{
// Nothing in Base Class
}
public override sealed string ToString()
{
return string.Format("{0} ({1}) - v{2}", Manifest.Name, Manifest.Id, Manifest.Version.ToString(4));
}
}
}