Esempio n. 1
0
        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;
        }
Esempio n. 2
0
        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();
        }
Esempio n. 3
0
        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();
        }
Esempio n. 4
0
        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));
Esempio n. 5
0
    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);
    }