private void PostChange(IScenarioChange change) { for (int i = 0; i < _changeHandlers.Count; i++) { try { _changeHandlers[i](change); } catch (Exception e) { _logProvider.Warning($"Error reported from change handler: {e.Message}"); } } }
/// <summary> /// The Scenario Resolver reported that a scenario changes e.g. the scenario file on disk changed /// </summary> /// <param name="change"></param> private void OnChangeHandler(IScenarioChange change) { try { lock (_lock) { switch (change.ChangeType) { case ScenarioChangeTypes.Created: _logProvider.Information("Adding scenario {scenarioName}", change.Name); GetScenario(change.Name); break; case ScenarioChangeTypes.Deleted: _logProvider.Information("Deleting scenario {scenarioName}", change.Name); DeleteScenario(change.Name); break; case ScenarioChangeTypes.Changed: _logProvider.Information("Updating scenario {scenarioName}", change.Name); DeleteScenario(change.Name); GetScenario(change.Name); break; case ScenarioChangeTypes.Renamed: _logProvider.Information("Renaming scenario {oldScenarioName} to {newScenarioName}", change.OldName, change.Name); DeleteScenario(change.Name); GetScenario(change.Name); break; } } } catch (Exception e) { _logProvider.Warning("Error while handling scenario {scenarioName} {changeType} change: {reason}", change.Name, change.ChangeType, e.Message); } }