static void Main(string[] args) { if (args.Length != 1) { Console.WriteLine("usage: Executor CONFIG_FILENAME"); System.Environment.Exit(2); } try { SessionSettings settings = new SessionSettings(args[0]); Application executorApp = new Executor(); MessageStoreFactory storeFactory = new FileStoreFactory(settings); LogFactory logFactory = new ScreenLogFactory(settings); ThreadedSocketAcceptor acceptor = new ThreadedSocketAcceptor(executorApp, storeFactory, settings, logFactory); acceptor.Start(); Console.WriteLine("press <enter> to quit"); Console.Read(); acceptor.Stop(); } catch (System.Exception e) { Console.WriteLine("FATAL ERROR: " + e.Message); Console.WriteLine(e.ToString()); } }
static void Main(string[] args) { Console.WriteLine("============="); Console.WriteLine("This is only an example program, meant to be used with the TradeClient example."); Console.WriteLine("============="); if (args.Length != 1) { Console.WriteLine("usage: Executor CONFIG_FILENAME"); System.Environment.Exit(2); } try { SessionSettings settings = new SessionSettings(args[0]); IApplication executorApp = new Executor(); IMessageStoreFactory storeFactory = new FileStoreFactory(settings); ILogFactory logFactory = new FileLogFactory(settings); ThreadedSocketAcceptor acceptor = new ThreadedSocketAcceptor(executorApp, storeFactory, settings, logFactory); acceptor.Start(); Console.WriteLine("press <enter> to quit"); Console.Read(); acceptor.Stop(); } catch (System.Exception e) { Console.WriteLine("==FATAL ERROR=="); Console.WriteLine(e.ToString()); } }
private void Renderpage(Executor executor, CancellationToken cancellationToken) { Console.SetCursorPosition(0, 0); int workerIndex = 0; foreach (var worker in executor.executeWorkers) { string currentMessage = ""; string status = ""; string lang = ""; switch (worker.Status) { case ExecuteWorkerStatus.Wait: currentMessage = ""; status = "WAIT"; break; case ExecuteWorkerStatus.Build: var solutionId = worker.Current.Id; currentMessage = solutionId == null ? "null" : $"{solutionId} {worker.builder.CurrentBuildTime:hh\\:mm\\:ss}"; status = "BUILD"; lang = worker.Current.Language; break; case ExecuteWorkerStatus.Checking: var runner = worker.runner; var current = runner.Current; string percentPart; if (runner.CurrentTestDataCount == 0) { percentPart = "[nodat]"; } else { var twentyPartLength = runner.CurrentTestDataCount / 5d; var twentyPercentPartsCount = (int)(runner.CurrentTestDataCheckedCount / twentyPartLength); percentPart = twentyPercentFillings[twentyPercentPartsCount]; } currentMessage = current == null ? "null" : $"{current} ({runner.CurrentTestDataCheckedCount,4}/{runner.CurrentTestDataCount,4}) {percentPart} {runner.CurrentBuildTime:hh\\:mm\\:ss}"; status = "CHECK"; lang = worker.Current.Language; break; default: currentMessage = ""; status = "ERROR"; lang = ""; break; } Console.WriteLine($"{workerIndex,6}: {status,-5} | {lang,-6} | {currentMessage,-65}"); workerIndex++; } string inQueueOnServerMessage; var inQueueOnServerObject = statistic?.FirstOrDefault(o => o.SolutionStatus == "InQueue"); if (inQueueOnServerObject == null) { inQueueOnServerMessage = "no data"; } else { inQueueOnServerMessage = $"{inQueueOnServerObject.Count,7}"; } Console.WriteLine($"In queue on server: {inQueueOnServerMessage}"); Console.WriteLine("LOGS"); foreach (var logMessage in ConsoleStatusReporterLoggerProvider.messages.OrderBy(m => m.Item1).ToArray()) { Console.WriteLine($"{logMessage.Item1:hh:mm:ss} {logMessage.Item2,-150}"); } }