/// <summary> /// Calls the Stop method of the Plugin class. /// </summary> /// <param name="context">The PluginContext that is hosting this Plugin instance.</param> /// <param name="e">EventArgs that contain a PluginDescriptor with meta-data about the Plugin instance.</param> internal void OnStop(PluginContext context, PluginDescriptorEventArgs e) { try { SingletonLogger.Instance.Debug(string.Format("Stopping Plugin, Plugin: '{0}'.", e.Descriptor.PluginName)); // inform the plugin that it should stop its services Stop(context, e); // fire the PluginStopped event of the PluginContext context.OnPluginStopped(e); } catch (Exception ex) { SingletonLogger.Instance.Debug(ex.Message, ex); } }
/// <summary> /// Calls the Start method of the Plugin class. /// </summary> /// <param name="context">The PluginContext that is hosting this Plugin instance.</param> /// <param name="e">EventArgs that contain a PluginDescriptor with meta-data about the Plugin instance.</param> internal void OnStart(PluginContext context, PluginDescriptorEventArgs e) { try { SingletonLogger.Instance.Debug(string.Format("Starting Plugin, Plugin: '{0}'.", e.Descriptor.PluginName)); // inform the plugin that it should start its services Start(context, e); _CairoShell.DoEvents(); // Since we are WPF we use this DoEvents instead of the Application.DoEvents from System.Windows.Forms // fire the PluginStarted event of the PluginContext context.OnPluginStarted(e); } catch (Exception ex) { SingletonLogger.Instance.Debug(ex.Message, ex); } }
/// <summary> /// Initializes a new instance of the PluginContextAlreadyRunningException class /// </summary> /// <param name="context">The PluginContext that is already running</param> internal PluginContextAlreadyRunningException(PluginContext context) : base(context, string.Format("A PluginContext is already running for the AppDomain '{0}'. Only one context can be run per application.", AppDomain.CurrentDomain.FriendlyName)) { }
/// <summary> /// Initializes a new instance of the PluginContextAlreadyExistsException class /// </summary> /// <param name="context">The PluginContext that already exists</param> internal PluginContextAlreadyExistsException(PluginContext context) : base(context, string.Format("A PluginContext already exists for the AppDomain '{0}'. Only one context can exist per application.", AppDomain.CurrentDomain.FriendlyName)) { }
/// <summary> /// Initializes a new instance of the PluginContextException class /// </summary> /// <param name="context">The PluginContext around which the exception is based</param> /// <param name="message"></param> protected PluginContextException(PluginContext context, string message) : base(message) { _existingContext = context; }
/// <summary> /// The abstract method that must be overriden by derived classes to stop plugin functionality /// </summary> /// <param name="context">The PluginContext that is hosting this Plugin instance.</param> /// <param name="e">EventArgs that contain a PluginDescriptor with meta-data about the Plugin instance.</param> protected abstract void Stop(PluginContext context, PluginDescriptorEventArgs e);
/// <summary> /// Initializes a new instance of the PluginContextEventArgs class. /// </summary> /// <param name="context">The plugin context that is the context of the event.</param> public PluginContextEventArgs(PluginContext context) { _context = context; }