using Inspectron.Settings; using Ninject; using Ninject.Extensions.ChildKernel; using System.ComponentModel; using VisionBuilder.UI.Common.NullClasses; using VisionBuilder.UI.Common.Plugins; using VisionBuilder.UI.Common.ViewModel; using VisionBuilder.UI.Common.ViewModel.Interfaces.UI; namespace VisionBuilder.UI.Common; public static class VisionBuilder { private static Mutex? _mutex; const string mutexName = "VisionBuilder.UI.SingleInstance"; public static bool IsAlreadyRunning() { _mutex = new Mutex(true, mutexName, out bool createdNew); if (!createdNew) { return true; } return false; } public static IKernel CreateMainKernel(InspectronSettings settings) { TypeDescriptor.AddAttributes(typeof(List), new TypeConverterAttribute(typeof(ErrorShortNameConverter))); StandardKernel mainKernel = new StandardKernel(); // GLOBAL SETTINGS // mainKernel.Bind().ToConstant(settings); mainKernel.Bind().ToConstant(new UIConfiguration()); mainKernel.Bind().To().InSingletonScope(); mainKernel.Bind().To().InSingletonScope(); // --- // mainKernel.Bind().ToSelf().InSingletonScope(); return mainKernel; } }