示例#1
0
 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}");
         }
     }
 }
示例#2
0
        /// <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);
            }
        }