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 override async Task <bool> InvokeAsync(string paramList) { var initaiteBusiness = new DataInitiator(_configBusiness, _counterBusiness); var messages = initaiteBusiness.CreateAll(); foreach (var message in messages) { OutputLine(message.Item1, message.Item2); } return(true); }
private bool InitiateDefaultCounters() { var initaiteBusiness = new DataInitiator(_configBusiness, _counterBusiness); var messages = initaiteBusiness.CreateAll(); var someIssue = false; foreach (var message in messages) { OutputLine(message.Item1, message.Item2); if (message.Item2 == OutputLevel.Error) { someIssue = true; } } return(!someIssue); }
public static void Main(string[] args) { var host = BuildWebHost(args); using (var scope = host.Services.CreateScope()) { var services = scope.ServiceProvider; try { var context = services.GetRequiredService <OnlineStoreDbContext>(); DataInitiator.Initialize(context); } catch (Exception ex) { var logger = services.GetRequiredService <ILogger <Program> >(); logger.LogError(ex, "An error occurred while using DataInitiator."); } } host.Run(); }