public Boot(LicenseManager licenseValidation, IAddinManager addinManager, IAddinLoader addinLoader, IEventDispatcher dispatcher, IFormEventHandler formEventHandler, I18NService i18nService, AddinAppEventHandler addinAppEventHandler) { this.licenseManager = licenseValidation; this.addinManager = addinManager; this.dispatcher = dispatcher; this.formEventHandler = formEventHandler; this.addinLoader = addinLoader; this.addinAppEventHandler = addinAppEventHandler; i18nService.ConfigureThreadI18n(System.Threading.Thread.CurrentThread); }
public AddinManager(PermissionManager permissionManager, FileUpdate fileUpdate, BusinessOneDAO b1DAO, I18NService i18nService, AssemblyDAO assemblyDAO, IAddinLoader addinLoader, LicenseManager licenseManager) { _initialized = false; this.permissionManager = permissionManager; this.assemblyDAO = assemblyDAO; this.b1DAO = b1DAO; this.i18nService = i18nService; this.fileUpdate = fileUpdate; this.addinLoader = addinLoader; this.licenseManager = licenseManager; }
internal void Run() { try { runningAddins.Add(this); runningAddinsHash.Add(asm.Code, this); var setup = new AppDomainSetup(); setup.ApplicationName = "Dover.Inception"; setup.ApplicationBase = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "..", "addIn", asm.Namespace, asm.Name); var domain = AppDomain.CreateDomain("Dover.AddIn", null, setup); domain.SetData("shutdownEvent", shutdownEvent); // Thread synchronization domain.SetData("bootEvent", bootEvent); domain.SetData("assemblyName", asm.Name); // Used to get current AssemblyName for logging and reflection domain.SetData("frameworkManager", frameworkAddinManager); IApplication app = (IApplication)domain.CreateInstanceAndUnwrap("Framework", "Dover.Framework.Application"); SAPServiceFactory.PrepareForInception(domain); addinFormEventHandler = app.Resolve <IFormEventHandler>(); addinLoader = app.Resolve <IAddinLoader>(); eventDispatcher = app.Resolve <IEventDispatcher>(); Sponsor <IApplication> appSponsor = new Sponsor <IApplication>(app); Sponsor <IFormEventHandler> formEventSponsor = new Sponsor <IFormEventHandler>(addinFormEventHandler); Sponsor <IAddinLoader> loaderSponsor = new Sponsor <IAddinLoader>(addinLoader); Sponsor <IEventDispatcher> eventSponsor = new Sponsor <IEventDispatcher>(eventDispatcher); app.RunAddin(); AppDomain.Unload(domain); } catch (AppDomainUnloadedException e) { // ignore and continue shutdown. } finally { runningAddins.Remove(this); runningAddinsHash.Remove(asm.Name); } }
internal void Run() { try { runningAddins.Add(this); runningAddinsHash.Add(asm.Code, this); var setup = new AppDomainSetup(); setup.ApplicationName = "Dover.Inception"; setup.ApplicationBase = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "..", "addIn", asm.Namespace, asm.Name); var domain = AppDomain.CreateDomain("Dover.AddIn", null, setup); domain.SetData("shutdownEvent", shutdownEvent); // Thread synchronization domain.SetData("bootEvent", bootEvent); domain.SetData("assemblyName", asm.Name); // Used to get current AssemblyName for logging and reflection domain.SetData("frameworkManager", frameworkAddinManager); IApplication app = (IApplication)domain.CreateInstanceAndUnwrap("Framework", "Dover.Framework.Application"); SAPServiceFactory.PrepareForInception(domain); addinFormEventHandler = app.Resolve<IFormEventHandler>(); addinLoader = app.Resolve<IAddinLoader>(); eventDispatcher = app.Resolve<IEventDispatcher>(); Sponsor<IApplication> appSponsor = new Sponsor<IApplication>(app); Sponsor<IFormEventHandler> formEventSponsor = new Sponsor<IFormEventHandler>(addinFormEventHandler); Sponsor<IAddinLoader> loaderSponsor = new Sponsor<IAddinLoader>(addinLoader); Sponsor<IEventDispatcher> eventSponsor = new Sponsor<IEventDispatcher>(eventDispatcher); app.RunAddin(); AppDomain.Unload(domain); } catch (AppDomainUnloadedException e) { // ignore and continue shutdown. } finally { runningAddins.Remove(this); runningAddinsHash.Remove(asm.Name); } }