public SettingsViewModel(IUILanguageProvider uiLanguageProvider, SidekickSettings sidekickSettings, INativeKeyboard nativeKeyboard, ILeagueDataService leagueDataService, IKeybindEvents keybindEvents) { this.uiLanguageProvider = uiLanguageProvider; this.sidekickSettings = sidekickSettings; this.nativeKeyboard = nativeKeyboard; this.keybindEvents = keybindEvents; this.leagueDataService = leagueDataService; Settings = new SidekickSettings(); AssignValues(sidekickSettings, Settings); Keybinds.Clear(); Settings.GetType() .GetProperties() .Where(x => x.Name.StartsWith("Key")) .ToList() .ForEach(x => Keybinds.Add(x.Name, x.GetValue(Settings).ToString())); WikiOptions.Add("POE Wiki", WikiSetting.PoeWiki.ToString()); WikiOptions.Add("POE Db", WikiSetting.PoeDb.ToString()); this.leagueDataService.Leagues.ForEach(x => LeagueOptions.Add(x.Id, x.Text)); uiLanguageProvider.AvailableLanguages.ForEach(x => UILanguageOptions.Add(x.NativeName.First().ToString().ToUpper() + x.NativeName.Substring(1), x.Name)); nativeKeyboard.OnKeyDown += NativeKeyboard_OnKeyDown; }
public PoeNinjaCache(IPoeNinjaClient client, ILogger logger, ILanguageProvider languageProvider, ILeagueDataService leagueDataService, SidekickSettings configuration) { this.client = client; this.languageProvider = languageProvider; this.logger = logger.ForContext(GetType()); this.configuration = configuration; leagueDataService.OnLeagueChange += async() => await RefreshData(); }
protected override async void OnStartup(StartupEventArgs e) { Instance = this; base.OnStartup(e); AttachErrorHandlers(); // Tooltip opened indefinitely until mouse is moved. ToolTipService.ShowDurationProperty.OverrideMetadata(typeof(DependencyObject), new FrameworkPropertyMetadata(int.MaxValue)); serviceProvider = Sidekick.Startup.InitializeServices(this); logger = serviceProvider.GetRequiredService <ILogger>(); nativeProcess = serviceProvider.GetRequiredService <INativeProcess>(); nativeBrowser = serviceProvider.GetRequiredService <INativeBrowser>(); leagueDataService = serviceProvider.GetRequiredService <ILeagueDataService>(); initializer = serviceProvider.GetRequiredService <IInitializer>(); viewLocator = serviceProvider.GetRequiredService <IViewLocator>(); settings = serviceProvider.GetRequiredService <SidekickSettings>(); trayIcon = (TaskbarIcon)FindResource("TrayIcon"); trayIcon.DataContext = serviceProvider.GetRequiredService <TrayIconViewModel>(); await RunAutoUpdate(); EnsureSingleInstance(); leagueDataService.OnNewLeagues += () => { Dispatcher.Invoke(() => { AdonisUI.Controls.MessageBox.Show(InitializerResources.Warn_NewLeagues, buttons: AdonisUI.Controls.MessageBoxButton.OK); }); }; if (settings.ShowSplashScreen) { initializer.OnProgress += (a) => { if (!viewLocator.IsOpened <SplashScreenView>()) { Dispatcher.Invoke(() => { viewLocator.Open <SplashScreenView>(); }); } }; } initializer.OnError += (error) => { AdonisUI.Controls.MessageBox.Show(InitializerResources.ErrorDuringInit, buttons: AdonisUI.Controls.MessageBoxButton.OK); base.Shutdown(1); }; await initializer.Initialize(); trayIcon.ShowBalloonTip( TrayResources.Notification_Title, string.Format(TrayResources.Notification_Message, settings.Key_CheckPrices.ToKeybindString(), settings.Key_CloseWindow.ToKeybindString()), trayIcon.Icon, largeIcon: true); serviceProvider.GetRequiredService <EventsHandler>(); }
public ItemSearchSettingsViewModel(ILeagueDataService leagueDataService, IWritableOptions <ItemSearchOptions> itemSearchOptions) { this.leagueDataService = leagueDataService; this.itemSearchOptions = itemSearchOptions; }