Exemplo n.º 1
0
        private void ParseMods(IStatDataService statDataService, List <Modifier> modifiers, List <string> texts, List <Mod> mods, List <LineContentValue> hashes)
        {
            if (modifiers == null || mods == null || hashes == null)
            {
                return;
            }

            for (var index = 0; index < hashes.Count; index++)
            {
                var definition = statDataService.GetById(hashes[index].Value);
                if (definition == null)
                {
                    continue;
                }

                var text = texts.FirstOrDefault(x => definition.Pattern.IsMatch(x));
                var mod  = mods.FirstOrDefault(x => x.Magnitudes != null && x.Magnitudes.Any(y => y.Hash == definition.Id));

                modifiers.Add(new Modifier()
                {
                    Id       = definition.Id,
                    Text     = text ?? definition.Text,
                    Tier     = mod?.Tier,
                    TierName = mod?.Name,
                });
            }
        }
Exemplo n.º 2
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;
        }
Exemplo n.º 3
0
        public TradeItem(Result result, IStatDataService statDataService)
        {
            Id      = result.Id;
            Listing = result.Listing;

            Corrupted  = result.Item.Corrupted;
            Identified = result.Item.Identified;
            Influences = result.Item.Influences;
            ItemLevel  = result.Item.ItemLevel;
            Name       = result.Item.Name;
            NameLine   = result.Item.Name;
            Rarity     = result.Item.Rarity;
            Sockets    = result.Item.Sockets;
            Type       = result.Item.TypeLine;
            TypeLine   = result.Item.TypeLine;

            Icon          = result.Item.Icon;
            Note          = result.Item.Note;
            PropertyTexts = result.Item.Properties;
            Requirements  = result.Item.Requirements;

            Properties.Armor           = result.Item.Extended.ArmourAtMax;
            Properties.EnergyShield    = result.Item.Extended.EnergyShieldAtMax;
            Properties.Evasion         = result.Item.Extended.EvasionAtMax;
            Properties.DamagePerSecond = result.Item.Extended.DamagePerSecond;
            Properties.ElementalDps    = result.Item.Extended.ElementalDps;
            Properties.PhysicalDps     = result.Item.Extended.PhysicalDps;

            ParseMods(statDataService,
                      Modifiers.Crafted,
                      result.Item.CraftedMods,
                      result.Item.Extended.Mods?.Crafted,
                      result.Item.Extended.Hashes?.Crafted);

            ParseMods(statDataService,
                      Modifiers.Enchant,
                      result.Item.EnchantMods,
                      result.Item.Extended.Mods?.Enchant,
                      result.Item.Extended.Hashes?.Enchant);

            ParseMods(statDataService,
                      Modifiers.Explicit,
                      result.Item.ExplicitMods,
                      result.Item.Extended.Mods?.Explicit,
                      result.Item.Extended.Hashes?.Explicit);

            ParseMods(statDataService,
                      Modifiers.Implicit,
                      result.Item.ImplicitMods,
                      result.Item.Extended.Mods?.Implicit,
                      result.Item.Extended.Hashes?.Implicit);

            ParseMods(statDataService,
                      Modifiers.Pseudo,
                      result.Item.PseudoMods,
                      result.Item.Extended.Mods?.Pseudo,
                      result.Item.Extended.Hashes?.Pseudo);
        }
Exemplo n.º 4
0
 public ParserService(
     ILogger logger,
     ILanguageProvider languageProvider,
     IStatDataService statsDataService,
     IItemDataService itemDataService,
     IParserPatterns patterns)
 {
     this.logger           = logger.ForContext(GetType());
     this.languageProvider = languageProvider;
     this.statsDataService = statsDataService;
     this.itemDataService  = itemDataService;
     this.patterns         = patterns;
 }
Exemplo n.º 5
0
        public ParserService(
            ILogger logger,
            ILanguageProvider languageProvider,
            IStatDataService statsDataService,
            IItemDataService itemDataService,
            IParserPatterns patterns)
        {
            this.logger           = logger.ForContext(GetType());
            this.languageProvider = languageProvider;
            this.statsDataService = statsDataService;
            this.itemDataService  = itemDataService;
            this.patterns         = patterns;

            NewlinePattern   = new Regex("[\\r\\n]+");
            SeparatorPattern = new Regex("--------");
        }
Exemplo n.º 6
0
 public TradeSearchService(ILogger logger,
                           ILanguageProvider languageProvider,
                           IHttpClientProvider httpClientProvider,
                           IStaticDataService staticDataService,
                           SidekickSettings configuration,
                           IPoeTradeClient poeTradeClient,
                           INativeBrowser nativeBrowser,
                           IStatDataService statDataService)
 {
     this.logger             = logger.ForContext(GetType());
     this.languageProvider   = languageProvider;
     this.httpClientProvider = httpClientProvider;
     this.staticDataService  = staticDataService;
     this.configuration      = configuration;
     this.poeTradeClient     = poeTradeClient;
     this.nativeBrowser      = nativeBrowser;
     this.statDataService    = statDataService;
 }
Exemplo n.º 7
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);
 }