public async override Task <bool> InvokeAsync(string paramList) { var index = 0; var addAnother = true; var collectors = new List <ICounter>(); while (addAnother) { var categoryNames = _counterBusiness.GetCategoryNames(); var categoryName = QueryParam("Category", GetParam(paramList, index++), categoryNames.Select(x => new KeyValuePair <string, string>(x, x))); var counterNames = _counterBusiness.GetCounterNames(categoryName); var counterName = QueryParam("Counter", GetParam(paramList, index++), counterNames.Select(x => new KeyValuePair <string, string>(x, x))); string instanceName = null; var cat = new PerformanceCounterCategory(categoryName); if (cat.CategoryType == PerformanceCounterCategoryType.MultiInstance) { var instanceNames = _counterBusiness.GetInstances(categoryName, counterName); instanceName = QueryParam("Instance", GetParam(paramList, index++), instanceNames.Select(x => new KeyValuePair <string, string>(x, x))); } addAnother = QueryParam("Add another counter?", GetParam(paramList, index++), new Dictionary <bool, string> { { true, "Yes" }, { false, "No" } }); var collector = new Collector.Entities.Counter(categoryName, counterName, instanceName, null, null); collectors.Add(collector); } var groupName = QueryParam <string>("Group Name", GetParam(paramList, index++)); var secondsInterval = QueryParam <int>("Seconds Interval", GetParam(paramList, index++)); var refreshInstanceInterval = 0; if (collectors.Any(x => x.InstanceName.Contains("*") || x.InstanceName.Contains("?"))) { refreshInstanceInterval = QueryParam <int>("Refresh Instance Interval", GetParam(paramList, index++)); } var collectorEngineType = QueryParam("Collector Engine Type", GetParam(paramList, index++), new Dictionary <CollectorEngineType, string> { { CollectorEngineType.Safe, CollectorEngineType.Safe.ToString() }, { CollectorEngineType.Exact, CollectorEngineType.Exact.ToString() } }); var initaiteBusiness = new DataInitiator(_configBusiness, _counterBusiness); var response = initaiteBusiness.CreateCounter(groupName, secondsInterval, refreshInstanceInterval, collectors, collectorEngineType); OutputLine(response.Item2.Item1, response.Item2.Item2); TestNewCounterGroup(response.Item1); return(false); }
public async override Task<bool> InvokeAsync(string paramList) { var index = 0; var addAnother = true; var collectors = new List<ICounter>(); while (addAnother) { var machineName = QueryParam("Machine", GetParam(paramList, index++), new Dictionary<string, string> { { System.Environment.MachineName, System.Environment.MachineName } }); var categoryNames = _counterBusiness.GetCategoryNames(); var categoryName = QueryParam("Category", GetParam(paramList, index++), categoryNames.Select(x => new KeyValuePair<string, string>(x, x))); var counterNames = _counterBusiness.GetCounterNames(categoryName, machineName); var counterName = QueryParam("Counter", GetParam(paramList, index++), counterNames.Select(x => new KeyValuePair<string, string>(x, x))); string instanceName = null; var cat = PerformanceCounterHelper.GetPerformanceCounterCategory(categoryName, machineName); if (cat.CategoryType == PerformanceCounterCategoryType.MultiInstance) { var instanceNames = _counterBusiness.GetInstances(categoryName, counterName, machineName); instanceName = QueryParam("Instance", GetParam(paramList, index++), instanceNames.Select(x => new KeyValuePair<string, string>(x, x))); } var fieldName = QueryParam<string>("FieldName", GetParam(paramList, index++)); addAnother = QueryParam("Add another counter?", GetParam(paramList, index++), new Dictionary<bool, string> { { true, "Yes" }, { false, "No" } }); var collector = new Collector.Entities.Counter(categoryName, counterName, instanceName, fieldName, null, null, null, machineName); collectors.Add(collector); } var groupName = QueryParam<string>("Group Name", GetParam(paramList, index++)); var secondsInterval = QueryParam<int>("Seconds Interval", GetParam(paramList, index++)); var refreshInstanceInterval = 0; if (collectors.Any(x => x.InstanceName.Contains("*") || x.InstanceName.Contains("?"))) { refreshInstanceInterval = QueryParam<int>("Refresh Instance Interval", GetParam(paramList, index++)); } var collectorEngineType = QueryParam("Collector Engine Type", GetParam(paramList, index++), new Dictionary<CollectorEngineType, string> { { CollectorEngineType.Safe, CollectorEngineType.Safe.ToString() }, { CollectorEngineType.Exact, CollectorEngineType.Exact.ToString() } }); var initaiteBusiness = new DataInitiator(_configBusiness, _counterBusiness); var response = initaiteBusiness.CreateCounter(groupName, secondsInterval, refreshInstanceInterval, collectors, collectorEngineType); OutputLine(response.Item2.Item1, response.Item2.Item2); TestNewCounterGroup(response.Item1); return false; }
public async override Task<bool> InvokeAsync(string paramList) { var index = 0; var addAnother = true; var collectors = new List<ICounter>(); while (addAnother) { var categoryNames = _counterBusiness.GetCategoryNames(); var categoryName = QueryParam("Category", GetParam(paramList, index++), categoryNames.Select(x => new KeyValuePair<string, string>(x, x))); var counterNames = _counterBusiness.GetCounterNames(categoryName); var counterName = QueryParam("Counter", GetParam(paramList, index++), counterNames.Select(x => new KeyValuePair<string, string>(x, x))); string instanceName = null; var cat = new PerformanceCounterCategory(categoryName); if (cat.CategoryType == PerformanceCounterCategoryType.MultiInstance) { var instanceNames = _counterBusiness.GetInstances(categoryName, counterName); instanceName = QueryParam("Instance", GetParam(paramList, index++), instanceNames.Select(x => new KeyValuePair<string, string>(x, x))); } addAnother = QueryParam("Add another counter?", GetParam(paramList, index++), new Dictionary<bool, string> { { true, "Yes" }, { false, "No" } }); var collector = new Collector.Entities.Counter(categoryName, counterName, instanceName); collectors.Add(collector); } var groupName = QueryParam<string>("Group Name", GetParam(paramList, index++)); var secondsInterval = QueryParam<int>("Seconds Interval", GetParam(paramList, index++)); var initaiteBusiness = new DataInitiator(_configBusiness, _counterBusiness); var response = initaiteBusiness.CreateCounter(groupName, secondsInterval, collectors); OutputLine(response.Item2.Item1, response.Item2.Item2); TestNewCounterGroup(response.Item1); return false; }