Ejemplo n.º 1
0
    private void Init(string[] args)
    {
        string[] coords            = { "" };
        bool     enabledConsoleLog = false;

        Logger.LogLevels logLevel  = Logger.LogLevels.INFO;
        List <LogTarget> logTagets = new List <LogTarget>()
        {
            new FileLogTarget("MyLogFile.log", createEmptyLogFile: true)
        };

        foreach (string arg in args)
        {
            string[] argData = arg.Split('=', 2);

            string command = argData[0].Trim();

            if (command.StartsWith("/consoleLog") && argData.Length > 1)
            {
                if (string.Equals(argData[1].Trim().ToLower(), "true"))
                {
                    logTagets.Add(new ConsoleLogTarget()); enabledConsoleLog = true;
                }
                continue;
            }

            if (command.StartsWith("/logLevel") && argData.Length > 1)
            {
                if (!Enum.TryParse <Logger.LogLevels>(argData[1].Trim(), true, out logLevel))
                {
                    logLevel = Logger.LogLevels.INFO;
                }
                continue;
            }

            if (command.StartsWith("/mode") && argData.Length > 1)
            {
                if (!Enum.TryParse <ProgramModes>(argData[1].Trim(), true, out programMode))
                {
                    programMode = ProgramModes.BOT;
                }
                continue;
            }

            if (command.StartsWith("/setwin") && argData.Length > 1)
            {
                coords = argData[1].Split(',');
                if (coords.Length == 4)
                {
                    Span <string> coordinates = new Span <string>(coords);
                    SeConsoleWindowPosition(coordinates);
                }

                continue;
            }
        }

        LogManager.LogLevel = logLevel;
        LogManager.LogTargets.AddRange(logTagets);

        if (logger.IsInfoLevelLog)
        {
            logger.Info($"Command line args: \"{string.Join(" ",args)}\"");
        }
        if (logger.IsInfoLevelLog)
        {
            logger.Info($"Program configured data: /mode={programMode} /consoleLog={enabledConsoleLog.ToString().ToLower()} /logLevel={logLevel.ToString().ToUpper()} /setwin={string.Join(",", coords)}");
        }

        ShowBoard = false;
        engine    = new Engine();
    }