private async Task <Dictionary <string, List <string> > > fetchList(ListConfig listConfig) { if (ListFetcher == null) { ListFetcher = new ListFetcher(listConfig); } else { ListFetcher.ListConfig = listConfig; } ListFetcher.Feedback.ErrorAdded += errorOutputHandler; ListFetcher.Feedback.OutputAdded += outputOutputHandler; // string saveFile = Environment.GetEnvironmentVariable("HOME") + "/test/emerging_threats.txt"; Console.WriteLine($"Trying to fetch list from {listConfig.Name} ({listConfig.Url})..."); Console.WriteLine("Fetching list."); Task fetchTask = Task.Run(ListFetcher.FetchAndParse); while (!fetchTask.IsCompleted) { Console.Write("."); Thread.Sleep(500); } Console.WriteLine("Done fetching list."); return(ListFetcher.Lists); }
static async Task Main(string[] args) { // TODO: Factory or builder pattern --> IExecutor executor = new NFTablesExecutor(new SshConnector()); IListFetcher listFetcher = new ListFetcher(); NFTManager manager = new NFTManager() { Executor = executor, ListFetcher = listFetcher, }; await manager.ManageLists(null, null, true); Console.WriteLine("Finished"); }