private void CheckPluginsAndRunRunables(IJob job) { try { switch (job.CurrentCommand) { case JobCommand.Execute: ExecutePlugins(job, plugin => Broker.Execute(plugin)); break; case JobCommand.Commit: ExecutePlugins(job, plugin => Broker.Commit(plugin)); break; case JobCommand.Rollback: ExecutePlugins(job, plugin => Broker.Rollback(plugin)); break; case JobCommand.Finalize: job.FinalizeJob(); break; case JobCommand.None: break; } } catch( NoOpenExecutionSlotsException ) { // TODO: Handle exception } catch( PluginNotInstalledException e ) { Octopus.Core.Logging.Logging.Instance.Log( string.Format( "ControllerEngine@CheckPluginsAndRunRunables(IJob) - Message: {0}\nStackTrace: {1}", e.Message, e.StackTrace ), false ); // TODO: Handle exception } }