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; }
static void Main(string[] args) { var config = new ConfigurationBuilder() .AddJsonFile("appsettings.json") .Build(); var wikiOptions = new WikiOptions(); config.GetSection("wiki").Bind(wikiOptions); var feedOptions = new FeedOptions(); config.GetSection("feed").Bind(feedOptions); var services = new ServiceCollection() .AddLogging(c => { c.AddConsole(); }) .AddSingleton(feedOptions) .AddSingleton(wikiOptions) .AddSingleton <Parser>() .AddSingleton <Wiki>() .AddSingleton <Backfiller>() .BuildServiceProvider(); services.GetService <Backfiller>().Run(); }
public Wiki(WikiOptions options, ILoggerFactory logFactory) { var client = new WikiClient() { ClientUserAgent = options.UserAgent, Logger = logFactory.CreateLogger <WikiClient>() }; _site = new WikiSite(client, options.ApiEndpoint) { Logger = logFactory.CreateLogger <WikiSite>() }; _site.Initialization.Wait(); _site.LoginAsync(options.Username, options.Password).Wait(); }
public SettingsViewModel( IUILanguageProvider uiLanguageProvider, IGameLanguageProvider gameLanguageProvider, ISidekickSettings sidekickSettings, IKeybindsProvider keybindsProvider, IKeybindsExecutor keybindsExecutor, IMediator mediator) { this.uiLanguageProvider = uiLanguageProvider; this.gameLanguageProvider = gameLanguageProvider; this.sidekickSettings = sidekickSettings; this.keybindsProvider = keybindsProvider; this.keybindsExecutor = keybindsExecutor; this.mediator = mediator; sidekickSettings.CopyValuesTo(this); WikiOptions.Add("POE Wiki", WikiSetting.PoeWiki.ToString()); WikiOptions.Add("POE Db", WikiSetting.PoeDb.ToString()); uiLanguageProvider.AvailableLanguages.ForEach(x => UILanguageOptions.Add(x.NativeName.First().ToString().ToUpper() + x.NativeName[1..], x.Name));
public void CreateWikiTest() { const string AdminId = "AdminId"; var options = new WikiOptions(); var dataStore = new InMemoryDataStore(); var welcome = GetDefaultWelcomeAsync(options, dataStore, AdminId).GetAwaiter().GetResult(); Assert.AreEqual(ExpectedWelcome, welcome.Html, ignoreCase: false); var main = GetDefaultMainAsync(options, dataStore, AdminId).GetAwaiter().GetResult(); var missing = main.WikiLinks.FirstOrDefault(x => x.Missing); Assert.IsNotNull(missing); var category = Category.GetCategory(options, dataStore, "System pages"); Assert.IsNotNull(category); SetDefaultCategoryAsync(options, dataStore, category !, AdminId).GetAwaiter().GetResult(); missing = category.WikiLinks.FirstOrDefault(x => x.Missing); Assert.IsNotNull(missing); var about = GetDefaultAboutAsync(options, dataStore, AdminId).GetAwaiter().GetResult(); main = dataStore.GetItem <Article>(main.Id, TimeSpan.Zero); Assert.IsNotNull(main); missing = main.WikiLinks.FirstOrDefault(x => x.Missing); Assert.IsNull(missing); category = dataStore.GetItem <Category>(category.Id, TimeSpan.Zero); Assert.IsNotNull(main); missing = main.WikiLinks.FirstOrDefault(x => x.Missing); Assert.IsNull(missing); Assert.AreEqual(_ExpectedAbout, about.Html, ignoreCase: false); }