public MainViewModel( [NotNull] MainDataContext dataContext, [NotNull] ISystemTrayContextMenu trayMenu, [NotNull] IConsoleArgs consoleArgs, [NotNull] IWaVersionInfoProvider waVersionInfoProvider, [NotNull] MainForm mainForm) { if (dataContext == null) { throw new ArgumentNullException(nameof(dataContext)); } if (trayMenu == null) { throw new ArgumentNullException(nameof(trayMenu)); } if (consoleArgs == null) { throw new ArgumentNullException(nameof(consoleArgs)); } if (waVersionInfoProvider == null) { throw new ArgumentNullException(nameof(waVersionInfoProvider)); } if (mainForm == null) { throw new ArgumentNullException(nameof(mainForm)); } this.DataContext = dataContext; this.trayMenu = trayMenu; this.consoleArgs = consoleArgs; this.waVersionInfoProvider = waVersionInfoProvider; this.mainForm = mainForm; trayMenu.ShowMainWindowClicked += ShowRestore; trayMenu.ExitWurmAssistantClicked += (sender, eventArgs) => this.TryClose(); savedNonMinimizedWindowState = WindowState.Normal; if (consoleArgs.WurmUnlimitedMode) { WindowTitle = "Aldur's Wurm Assistant Unlimited"; Icon = Resources.WurmAssistantUnlimitedIcon.ToImageSource(); } else { WindowTitle = "Aldur's Wurm Assistant"; Icon = Resources.WurmAssistantIcon.ToImageSource(); } WindowTitle += string.Format(" ({0})", waVersionInfoProvider.Get()); mainForm.Dock = DockStyle.Fill; WinFormsContent = new WindowsFormsHost() { Child = mainForm, HorizontalAlignment = HorizontalAlignment.Stretch, VerticalAlignment = VerticalAlignment.Stretch }; }
public FeaturesManager( [NotNull] IKernel kernel, [NotNull] ISystemTrayContextMenu systemTrayContextMenu, [NotNull] ILogger logger) { if (kernel == null) { throw new ArgumentNullException(nameof(kernel)); } if (systemTrayContextMenu == null) { throw new ArgumentNullException(nameof(systemTrayContextMenu)); } if (logger == null) { throw new ArgumentNullException(nameof(logger)); } this.kernel = kernel; this.systemTrayContextMenu = systemTrayContextMenu; this.logger = logger; var allFeatureBindings = kernel.GetBindings(typeof(IFeature)); List <IFeature> resolvedFeatures = new List <IFeature>(); foreach (var allFeatureBinding in allFeatureBindings) { try { var feature = kernel.Get <IFeature>(allFeatureBinding.Metadata.Name); resolvedFeatures.Add(feature); } catch (Exception exception) { logger.Error(exception, $"Unable to resolve IFeature named {allFeatureBinding.Metadata.Name}"); } } features = resolvedFeatures; Init(); }