public void ExecuteService(ITaskAwaiter taskAwaiter)
        {
            var config = Config;

            var version          = Assembly.GetExecutingAssembly().GetName().Version;
            var frameworkVersion = Assembly.GetExecutingAssembly().GetCustomAttribute <TargetFrameworkAttribute>().FrameworkName;

            var consoleMessageBuilder = new ConsoleMessageBuilder();

            consoleMessageBuilder.Write(" * ", ConsoleColor.Green, false)
            .Write("ABOUT".PadRight(13), false)
            .Write($"Tuckfirtle Miner/{version} ", ConsoleColor.Cyan, false)
            .WriteLine(frameworkVersion, false);

            consoleMessageBuilder.Write(" * ", ConsoleColor.Green, false)
            .Write("THREADS".PadRight(13), false)
            .Write($"{config.Threads.Length}", ConsoleColor.Cyan, false)
            .Write(", ", false)
            .Write("TuckfirtlePow", false)
            .Write(", ", false)
            .WriteLine($"donate={config.DonateLevel}%", config.DonateLevel == 0 ? ConsoleColor.Red : ConsoleColor.White, false);

            consoleMessageBuilder.Write(" * ", ConsoleColor.Green, false)
            .Write("COMMANDS".PadRight(13), false)
            .Write("h", ConsoleColor.Magenta, false)
            .WriteLine("ashrate", false);

            ConsoleLogger.LogMessage(consoleMessageBuilder.Build());
        }
Пример #2
0
        public static void Main()
        {
            DependencyManager.InstallService(new ConsoleStreamQueueLoggerServiceInstaller());
            DependencyManager.InstallService(new BootstrapServiceInstaller());
            DependencyManager.InstallService(new JsonConfigServiceInstaller(Path.Combine(Environment.CurrentDirectory, "Config.json")));
            DependencyManager.InstallService(new ConsoleBootstrapServiceInstaller());
            DependencyManager.InstallService(new MiningBootstrapServiceInstaller());

            DependencyManager.BuildAndExecute((provider, exception) =>
            {
                var consoleLogger = provider.GetRequiredService <IConsoleLogger>() ?? new ConsoleStreamLogger(Console.Error);

                if (exception is AggregateException aggregateException)
                {
                    var consoleMessages = new ConsoleMessageBuilder();

                    foreach (var exInnerException in aggregateException.InnerExceptions)
                    {
                        if (exInnerException is OperationCanceledException)
                        {
                            continue;
                        }

                        consoleMessages.WriteLine(exInnerException.ToString(), ConsoleColor.Red);
                    }

                    var message = consoleMessages.WriteLine("Press Enter/Return to exit...").Build();

                    if (message.Count > 1)
                    {
                        consoleLogger.LogMessage(message);
                        Console.ReadLine();
                    }

                    ExitWithFault();
                }
                else
                {
                    consoleLogger.LogMessage(new ConsoleMessageBuilder()
                                             .WriteLine(exception.ToString(), ConsoleColor.Red)
                                             .WriteLine("Press Enter/Return to exit...")
                                             .Build());

                    Console.ReadLine();

                    ExitWithFault();
                }
            });
        }