public Task Do(IDictionary <string, object> stepParameters, IDictionary <string, object> pluginParameters, IList <IRpcClient> clients) { ICollector collector = null; try { Log.Information($"Stop collecting..."); // Get parameters stepParameters.TryGetTypedValue(SignalRConstants.Type, out string type, Convert.ToString); pluginParameters.TryGetTypedValue($"{SignalRConstants.StopCollector}.{type}", out collector, obj => (ICollector)obj); } finally { // Stop and dispose timer if (collector != null) { collector.StopCollector(); } } return(Task.CompletedTask); }