BlueCollar.Console.Program.Main C# (CSharp) Method

Main() private method

private Main ( string args ) : int
args string
return int
        public static int Main(string[] args)
        {
            Console.CancelKeyPress += new ConsoleCancelEventHandler(ConsoleCancelKeyPress);

            options = InputOptions.Create(args);
            logger = new ConsoleLogger(options);
            isRunning = true;

            if (options.IsValid)
            {
                if (!options.Help)
                {
                    if (options.ParentProcessId > 0)
                    {
                        Process parentProcess = Process.GetProcessById(options.ParentProcessId);

                        if (parentProcess != null)
                        {
                            logger.Debug("Parent process was found with ID {0}. Subscribing to 'Exited' event.", options.ParentProcessId);
                            parentProcess.Exited += new EventHandler(ParentProcessExited);
                            parentProcess.EnableRaisingEvents = true;
                        }
                        else
                        {
                            logger.Debug("No parent process was found with ID {0}.", options.ParentProcessId);
                        }
                    }

                    Console.WriteLine();
                    Console.ForegroundColor = ConsoleColor.Cyan;
                    Console.WriteLine("Type 'exit' to shutdown gracefully, or Ctl+C to exit immediately.");
                    Console.ResetColor();
                    Console.WriteLine();

                    inputThread = new Thread(WaitForInput);
                    inputThread.Start();

                    PullupBootstraps();
                }
                else
                {
                    logger.Help();
                }
            }
            else
            {
                logger.InputError();
                return 1;
            }

            return 0;
        }