Esempio n. 1
0
        public BaseView(string id, IServiceProvider serviceProvider, bool closeOnBlur = false, bool closeOnKey = false)
        {
            keybindEvents = serviceProvider.GetService <IKeybindEvents>();
            settings      = serviceProvider.GetService <SidekickSettings>();
            windowService = serviceProvider.GetService <IWindowService>();
            logger        = serviceProvider.GetService <ILogger>();
            debouncer     = serviceProvider.GetService <IDebouncer>();

            IsVisibleChanged += EnsureBounds;
            Loaded           += EnsureBounds;
            Loaded           += BaseWindow_Loaded;
            SizeChanged      += EnsureBounds;

            if (closeOnBlur && settings.CloseOverlayWithMouse)
            {
                Deactivated += BaseBorderlessWindow_Deactivated;
            }

            if (closeOnKey)
            {
                keybindEvents.OnCloseWindow += KeybindEvents_OnCloseWindow;
            }

            this.closeOnBlur = closeOnBlur;
            this.closeOnKey  = closeOnKey;
            this.id          = id;
        }
Esempio n. 2
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. 3
0
        public static IServiceCollection AddSidekickApplication(this IServiceCollection services, IConfiguration configuration)
        {
            var sidekickConfiguration = new SidekickSettings();

            configuration.Bind(sidekickConfiguration);
            configuration.BindList(nameof(SidekickSettings.Chat_Commands), sidekickConfiguration.Chat_Commands);
            services.AddSingleton(sidekickConfiguration);

            services.AddSingleton <IGameLanguageProvider, GameLanguageProvider>();
            services.AddSingleton <ISidekickSettings>(sp => sp.GetRequiredService <SidekickSettings>());
            services.AddSingleton <IParserPatterns, ParserPatterns>();

            // Keybind handlers
            services.AddSingleton <ChatKeybindHandler>();
            services.AddSingleton <CloseOverlayKeybindHandler>();
            services.AddSingleton <FindItemKeybindHandler>();
            services.AddSingleton <OpenCheatsheetsKeybindHandler>();
            services.AddSingleton <OpenMapInfoKeybindHandler>();
            services.AddSingleton <OpenSettingsKeybindHandler>();
            services.AddSingleton <OpenTradePageKeybindHandler>();
            services.AddSingleton <OpenWikiPageKeybindHandler>();
            services.AddSingleton <PriceCheckItemKeybindHandler>();
            services.AddSingleton <ScrollStashDownKeybindHandler>();
            services.AddSingleton <ScrollStashUpKeybindHandler>();

            return(services);
        }
Esempio n. 4
0
        public PriceViewModel(
            ILogger logger,
            IDebouncer debouncer,
            ITradeSearchService tradeSearchService,
            IPoeNinjaCache poeNinjaCache,
            IStaticDataService staticDataService,
            ILanguageProvider languageProvider,
            IPoePriceInfoClient poePriceInfoClient,
            INativeClipboard nativeClipboard,
            IParserService parserService,
            SidekickSettings settings,
            IStatDataService statDataService,
            IItemCategoryService itemCategoryService)
        {
            this.logger              = logger;
            this.debouncer           = debouncer;
            this.tradeSearchService  = tradeSearchService;
            this.poeNinjaCache       = poeNinjaCache;
            this.staticDataService   = staticDataService;
            this.languageProvider    = languageProvider;
            this.poePriceInfoClient  = poePriceInfoClient;
            this.nativeClipboard     = nativeClipboard;
            this.parserService       = parserService;
            this.settings            = settings;
            this.statDataService     = statDataService;
            this.itemCategoryService = itemCategoryService;
            Task.Run(Initialize);

            PropertyChanged += PriceViewModel_PropertyChanged;
        }
Esempio n. 5
0
 public TrayIconViewModel(App application, SidekickSettings settings, IUILanguageProvider uiLanguageProvider, IViewLocator viewLocator)
 {
     this.application        = application;
     this.settings           = settings;
     this.uiLanguageProvider = uiLanguageProvider;
     this.viewLocator        = viewLocator;
 }
Esempio n. 6
0
 public EventsHandler(
     IKeybindEvents events,
     IWhisperService whisperService,
     INativeClipboard clipboard,
     INativeKeyboard keyboard,
     ILogger logger,
     ITradeSearchService tradeSearchService,
     IWikiProvider wikiProvider,
     IViewLocator viewLocator,
     IChatService chatService,
     IStashService stashService,
     SidekickSettings settings,
     IParserService parserService)
 {
     this.events             = events;
     this.whisperService     = whisperService;
     this.clipboard          = clipboard;
     this.keyboard           = keyboard;
     this.logger             = logger.ForContext(GetType());
     this.tradeSearchService = tradeSearchService;
     this.logger             = logger.ForContext(GetType());
     this.wikiProvider       = wikiProvider;
     this.viewLocator        = viewLocator;
     this.chatService        = chatService;
     this.stashService       = stashService;
     this.settings           = settings;
     this.parserService      = parserService;
     Initialize();
 }
Esempio n. 7
0
 public PoeNinjaCache(IPoeNinjaClient client,
                      ILogger logger,
                      SidekickSettings configuration)
 {
     this.client        = client;
     this.logger        = logger;
     this.configuration = configuration;
 }
Esempio n. 8
0
 public PoeNinjaCache(IPoeNinjaClient client,
                      ILogger logger,
                      SidekickSettings configuration)
 {
     this.client        = client;
     this.logger        = logger.ForContext(GetType());
     this.configuration = configuration;
 }
Esempio n. 9
0
        public UILanguageProvider(SidekickSettings settings)
        {
            AvailableLanguages = SupportedLanguages
                                 .Select(x => new CultureInfo(x))
                                 .ToList();

            this.settings = settings;
        }
Esempio n. 10
0
 public LeagueDataService(IPoeTradeClient poeTradeClient,
                          SidekickSettings settings,
                          ICacheService cacheService)
 {
     this.poeTradeClient = poeTradeClient;
     this.settings       = settings;
     this.cacheService   = cacheService;
 }
Esempio n. 11
0
        public Logger(SidekickSettings configuration,
                      IInitializer initializer)
        {
            this.configuration = configuration;
            this.initializer   = initializer;

            initializer.OnProgress += Initializer_OnProgress;
        }
Esempio n. 12
0
 public PartyService(
     ILogger logger,
     SidekickSettings settings,
     IChatService chatService)
 {
     this.logger      = logger.ForContext(GetType());
     this.settings    = settings;
     this.chatService = chatService;
 }
Esempio n. 13
0
        public PoePriceInfoClient(ILogger logger,
                                  IHttpClientFactory httpClientFactory,
                                  SidekickSettings configuration)
        {
            this.logger        = logger.ForContext(GetType());
            this.configuration = configuration;

            client             = httpClientFactory.CreateClient();
            client.BaseAddress = new Uri(PoePricesBaseUrl);
        }
Esempio n. 14
0
 public KeybindEvents(ILogger logger,
                      INativeProcess nativeProcess,
                      SidekickSettings configuration,
                      INativeKeyboard nativeKeyboard)
 {
     this.logger         = logger;
     this.nativeProcess  = nativeProcess;
     this.configuration  = configuration;
     this.nativeKeyboard = nativeKeyboard;
 }
Esempio n. 15
0
        public LeagueViewModel(
            SidekickSettings settings)
        {
            this.settings = settings;

            Betrayal  = new BetrayalLeague();
            Blight    = new BlightLeague();
            Delve     = new DelveLeague();
            Incursion = new IncursionLeague();
            Metamorph = new MetamorphLeague();
        }
Esempio n. 16
0
 public ChatService(
     ILogger logger,
     INativeKeyboard keyboard,
     INativeClipboard clipboard,
     SidekickSettings settings)
 {
     this.logger    = logger.ForContext(GetType());
     this.keyboard  = keyboard;
     this.clipboard = clipboard;
     this.settings  = settings;
 }
Esempio n. 17
0
        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();
        }
Esempio n. 18
0
        public BaseWindow(IServiceProvider serviceProvider, bool closeOnBlur = false)
        {
            keybindEvents = serviceProvider.GetService <IKeybindEvents>();
            settings      = serviceProvider.GetService <SidekickSettings>();

            Deactivated         += BaseWindow_Deactivated;
            MouseLeftButtonDown += Window_MouseLeftButtonDown;
            SizeChanged         += EnsureBounds;
            IsVisibleChanged    += EnsureBounds;
            Loaded += EnsureBounds;
            keybindEvents.OnCloseWindow += KeybindEvents_OnCloseWindow;
            this.closeOnBlur             = closeOnBlur;
        }
Esempio n. 19
0
 public KeybindEvents(ILogger logger,
                      INativeProcess nativeProcess,
                      SidekickSettings configuration,
                      INativeKeyboard nativeKeyboard,
                      IStashService stashService,
                      HookProvider hookProvider)
 {
     this.logger         = logger.ForContext(GetType());
     this.nativeProcess  = nativeProcess;
     this.configuration  = configuration;
     this.nativeKeyboard = nativeKeyboard;
     this.stashService   = stashService;
     this.hookProvider   = hookProvider;
 }
Esempio n. 20
0
 public TradeClient(ILogger logger,
                    ILanguageProvider languageProvider,
                    IHttpClientProvider httpClientProvider,
                    IStaticItemCategoryService staticItemCategoryService,
                    SidekickSettings configuration,
                    IPoeApiClient poeApiClient,
                    INativeBrowser nativeBrowser)
 {
     this.logger                    = logger;
     this.languageProvider          = languageProvider;
     this.httpClientProvider        = httpClientProvider;
     this.staticItemCategoryService = staticItemCategoryService;
     this.configuration             = configuration;
     this.poeApiClient              = poeApiClient;
     this.nativeBrowser             = nativeBrowser;
 }
Esempio n. 21
0
        public MapInfoViewModel(
            INativeClipboard nativeClipboard,
            IParserService parserService,
            SidekickSettings settings)
        {
            this.nativeClipboard = nativeClipboard;
            this.parserService   = parserService;
            DangerousModsRegex   = new Regex(
                settings.DangerousModsRegex,
                RegexOptions.Compiled | RegexOptions.IgnoreCase);

            DangerousMapMods = new ObservableList <DangerousMapModModel>();
            NewLinePattern   = new Regex("(?:\\\\)*[\\r\\n]+");
            IsParsing        = true;
            Task.Run(Initialize);
        }
Esempio n. 22
0
 public TradeSearchService(ILogger logger,
                           ILanguageProvider languageProvider,
                           IHttpClientProvider httpClientProvider,
                           IStaticDataService staticDataService,
                           SidekickSettings configuration,
                           IPoeTradeClient poeTradeClient,
                           INativeBrowser nativeBrowser)
 {
     this.logger             = logger.ForContext(GetType());
     this.languageProvider   = languageProvider;
     this.httpClientProvider = httpClientProvider;
     this.staticDataService  = staticDataService;
     this.configuration      = configuration;
     this.poeTradeClient     = poeTradeClient;
     this.nativeBrowser      = nativeBrowser;
 }
Esempio n. 23
0
        public UILanguageProvider(SidekickSettings settings)
        {
            AvailableLanguages = SupportedLanguages
                                 .Select(x => new CultureInfo(x))
                                 .ToList();

            var current = AvailableLanguages.FirstOrDefault(x => x.Name == settings.Language_UI);

            if (current != null)
            {
                SetLanguage(settings.Language_UI);
            }
            else
            {
                SetLanguage(SupportedLanguages.FirstOrDefault());
            }
        }
Esempio n. 24
0
        public LanguageProvider(ILogger logger,
                                IInitializer initializeService,
                                SidekickSettings settings)
        {
            this.logger            = logger.ForContext(GetType());
            this.initializeService = initializeService;
            this.settings          = settings;

            AvailableLanguages = new List <LanguageAttribute>();
            foreach (var type in typeof(LanguageAttribute).GetImplementedAttribute())
            {
                var attribute = type.GetAttribute <LanguageAttribute>();
                attribute.ImplementationType = type;
                AvailableLanguages.Add(attribute);
            }

            if (!SetLanguage(settings.Language_Parser))
            {
                SetLanguage(DefaultLanguage);
            }
        }
Esempio n. 25
0
        public static IServiceCollection AddSidekickApplication(this IServiceCollection services)
        {
            var builder = new ConfigurationBuilder()
                          .SetBasePath(Directory.GetCurrentDirectory())
                          .AddJsonFile(SaveSettingsHandler.FileName, optional: true, reloadOnChange: true);

            var configuration = builder.Build();

            var sidekickConfiguration = new SidekickSettings();

            configuration.Bind(sidekickConfiguration);
            services.AddSingleton(sidekickConfiguration);

            services.AddSingleton <IGameLanguageProvider, GameLanguageProvider>();
            services.AddSingleton <ISidekickSettings>(sp => sp.GetRequiredService <SidekickSettings>());
            services.AddSingleton <IKeybindsExecutor, KeybindsExecutor>();
            services.AddSingleton <IClipboardProvider, ClipboardProvider>();
            services.AddSingleton <IParserPatterns, ParserPatterns>();

            return(services);
        }
Esempio n. 26
0
 public PriceViewModel(
     ITradeSearchService tradeSearchService,
     IPoeNinjaCache poeNinjaCache,
     IStaticDataService staticDataService,
     ILanguageProvider languageProvider,
     IPoePriceInfoClient poePriceInfoClient,
     INativeClipboard nativeClipboard,
     IParserService parserService,
     SidekickSettings settings,
     IStatDataService statDataService)
 {
     this.tradeSearchService = tradeSearchService;
     this.poeNinjaCache      = poeNinjaCache;
     this.staticDataService  = staticDataService;
     this.languageProvider   = languageProvider;
     this.poePriceInfoClient = poePriceInfoClient;
     this.nativeClipboard    = nativeClipboard;
     this.parserService      = parserService;
     this.settings           = settings;
     this.statDataService    = statDataService;
     Task.Run(Initialize);
 }
Esempio n. 27
0
 public LeagueDataService(IPoeTradeClient poeTradeClient,
                          SidekickSettings settings)
 {
     this.poeTradeClient = poeTradeClient;
     this.settings       = settings;
 }
Esempio n. 28
0
 public NativeClipboard(SidekickSettings settings, INativeKeyboard keyboard)
 {
     this.settings = settings;
     this.keyboard = keyboard;
 }
Esempio n. 29
0
 public LeagueService(IPoeApiClient poeApiClient,
                      SidekickSettings configuration)
 {
     this.poeApiClient  = poeApiClient;
     this.configuration = configuration;
 }
Esempio n. 30
0
 private void AssignValues(SidekickSettings src, SidekickSettings dest)
 {
     // iterates through src Settings (properties) and copies them to dest settings (properties)
     // If there ever comes a time, where some properties do not have to be copied, we can add attributes to exclude them
     src.GetType().GetProperties().ToList().ForEach(x => x.SetValue(dest, x.GetValue(src)));
 }