using System.Reflection;
using Quadarax.Foundation.Core.NLog;
using Quadarax.Foundation.Core.QConsole;
using Quadarax.Foundation.Core.QConsole.Configuration;
using Quadarax.Foundation.Core.QConsole.Context;
using Quadarax.Foundation.Core.Reflection.Extensions;

namespace BO.ProcessServer
{
    class Program
    {
        static void Main(string[] args)
        {
            new LoggerFactory().Configure(Constants.CS_NLOG_CONFIGURATION_FILE);

            var config = new StartupConfiguration("BO ProcessServer", Assembly.GetExecutingAssembly().GetName().Version);
            config.ConsoleCopyright = Assembly.GetExecutingAssembly().GetCopyright();
            config.AllowInteractive = false;
            config.WaitOnKeyInNonInteractiveMode = false;
            config.CommandDefinitionAssebmly = new Assembly[] { Assembly.GetEntryAssembly() };
            config.DisableDefaultCommands();
            config.ShowStatusOnEveryCommand = false;
            config.IsConsoleDebug = false;

            var console = new Engine(config, new DefualtEngineContext(), args);
            console.Start();
        }
    }
}
