using System.Globalization;
using Hawkeye.VisionBuilder.Workflow;
using Hawkeye.VisionBuilder.Workflow.Operations;
using Ninject;

namespace Hawkeye.VisionBuilder
{
    internal static class Program
    {

        /// <summary>
        ///  The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main(string[] args)
        {
            ApplicationConfiguration.Initialize();
            WinConsole.Initialize();
            ThreadPool.SetMinThreads(64, 4);


            Thread.CurrentThread.CurrentCulture=new CultureInfo("en-US");
            Thread.CurrentThread.CurrentUICulture=new CultureInfo("en-US");

            

            StandardKernel kernel = new StandardKernel();

          
            
            WorkflowList workflow = new WorkflowList();
            OperationDiscoveryService service = new OperationDiscoveryService(workflow);
            workflow.Operations.Add(new GetImageOperation(workflow));

            kernel.Bind<OperationDiscoveryService>().ToConstant(service);
            kernel.Bind<WorkflowList>().ToConstant(workflow);


            Application.Run(kernel.Get<MainWindow>());
        }
        
    }
}