using CandyboxPlugin.Module; using Inspectron.Settings; using Ninject; using System.Reflection; using CandyboxPlugin.Modules.Barcode; using Ninject.Planning.Bindings; using VisionBuilder.UI.Common; using VisionBuilder.UI.Common.Plugins; using VisionBuilder.UI.Common.Processing; using VisionBuilder.UI.Common.ViewModel.Interfaces.UI; namespace CandyboxPlugin { public class Plugin: IPlugin { public void RegisterGlobalModules(IKernel kernel) { TypeConverterRegistry.Register>(new ListBarcodeRecipeMappingConverter()); kernel.Rebind().To().InSingletonScope(); } public void RegisterCameraModules(IKernel kernel, string cameraName) { // remove settings binding var existingRecognitionControlSettings = kernel.GetBindings(typeof(BaseRecognitionControlSettings)).First(); var toRemove = kernel.GetBindings(typeof(ISettings)).First(x => x.ProviderCallback.Target == existingRecognitionControlSettings.ProviderCallback.Target); kernel.RemoveBinding(toRemove); kernel.Bind().ToConstant(new CandyboxRecognitionControlSettings(cameraName)); kernel.Rebind().To().InSingletonScope(); kernel.Rebind().To().InSingletonScope(); kernel.Bind() .ToConstant(new CandyboxBarcodeReaderSettings(cameraName)); kernel.RegisterModule(); } } }