Пример #1
0
 public void Reload()
 {
     this.EconomyData         = EconomyRequestFacade.GetInstance();
     this.ItemInfoData        = ItemInformationFacade.GetInstance();
     this.TierListData        = TierListFacade.GetInstance();
     this.ItemInformationData = new ObservableCollection <ItemTieringData>();
 }
        public ConcreteEconomyRules()
        {
            this.EconomyInformation = EconomyRequestFacade.GetInstance();
            this.ItemInformation    = ItemInformationFacade.GetInstance();
            this.TierListFacade     = TierListFacade.GetInstance();

            // The list of the suggestion-generating rulesets
            this.uniqueRules     = UniqueRulesFactory.Generate(this);
            this.divinationRules = DivinationRuleFactory.Generate(this);
            this.prophecyRules   = ProphecyRulesFactory.Generate(this);

            this.scarabRules     = this.GenerateScarabRuleSet();
            this.uniquemapsRules = this.GenerateUniqueMapRules();
            this.fossilrules     = this.GenerateFossilTieringRules();
            this.incubatorrules  = this.GenerateIncubatorTieringRules();

            this.shaperRules = ShaperElderRulesFactory.Generate(this, "rare->shaper");
            this.elderRules  = ShaperElderRulesFactory.Generate(this, "rare->elder");
            this.normalRules = ShaperElderRulesFactory.Generate(this, "rare->normal");

            this.Rules.Clear();

            this.Rules.Add(this.uniqueRules);
            this.Rules.Add(this.divinationRules);
            this.Rules.Add(this.uniquemapsRules);
            this.Rules.Add(this.fossilrules);
            this.Rules.Add(this.elderRules);
            this.Rules.Add(this.shaperRules);
            this.Rules.Add(this.incubatorrules);
            this.Rules.Add(this.prophecyRules);
            this.Rules.Add(this.scarabRules);
            // this.Rules.Add(this.normalRules);
        }
Пример #3
0
        public TieringSuggestionView()
        {
            InitializeComponent();

            var keyList = new HashSet <string>();

            foreach (var item in FilterPolishConfig.FilterTierLists)
            {
                if (FilterPolishConfig.MatrixTiersStrategies.Keys.Contains(item))
                {
                    continue;
                }

                keyList.Add(item);
            }

            this.SelectedBranchComboBox.ItemsSource   = keyList;
            this.SelectedBranchComboBox.SelectedIndex = 0;

            this.TierListFacade = TierListFacade.GetInstance();
            this.InitializeTieringList();
            this.DataContext = this;

            this.EventGridFacade = EventGridFacade.GetInstance();
            this.EventGridFacade.FilterChangeEvent += EventGridFacade_FilterChangeEvent;

            this.TieringFilters.Add("none", new TieringSuggestionFilter("none", x => true));
            this.TieringFilters.Add("Only Changed", new TieringSuggestionFilter("OnlyChangedFilter", x => x.IsChange || x.Performed));

            this.SelectedTieringFiltersComboBox.ItemsSource = this.TieringFilters.Keys;
            this.SelectedBranchComboBox.SelectedIndex       = 0;
        }
        public ConcreteEconomyRules()
        {
            this.EconomyInformation = EconomyRequestFacade.GetInstance();
            this.ItemInformation    = ItemInformationFacade.GetInstance();
            this.TierListFacade     = TierListFacade.GetInstance();

            this.Rules.Clear();

            // The list of the suggestion-generating rulesets
            this.Rules.Add(UniqueRulesFactory.Generate(this));
            this.Rules.Add(DivinationRuleFactory.Generate(this));
            this.Rules.Add(ProphecyRulesFactory.Generate(this));
            this.Rules.Add(FragmentsRuleFactory.Generate(this));
            this.Rules.Add(CurrencyRuleFactory.Generate(this));

            this.Rules.Add(this.GenerateScarabRuleSet());
            this.Rules.Add(this.GenerateUniqueMapRules());
            this.Rules.Add(this.GenerateFossilTieringRules());
            this.Rules.Add(this.GenerateIncubatorTieringRules());
            this.Rules.Add(this.GenerateBlightOilRuleSet());
            this.Rules.Add(this.GenerateVialRuleSet());
            this.Rules.Add(this.GenerateDeliriumorbsRuleSet());

            this.Rules.Add(ShaperElderRulesFactory.Generate(this, "rare->shaper"));
            this.Rules.Add(ShaperElderRulesFactory.Generate(this, "rare->elder"));
            this.Rules.Add(ShaperElderRulesFactory.Generate(this, "rare->hunter"));
            this.Rules.Add(ShaperElderRulesFactory.Generate(this, "rare->warlord"));
            this.Rules.Add(ShaperElderRulesFactory.Generate(this, "rare->crusader"));
            this.Rules.Add(ShaperElderRulesFactory.Generate(this, "rare->redeemer"));

            this.Rules.Add(NormalCraftingBasesRuleFactory.Generate(this, "generalcrafting"));
        }
        public void Reload()
        {
            if (string.IsNullOrWhiteSpace(this.BranchKey))
            {
                return;
            }

            this.TierListFacade = TierListFacade.GetInstance();
            RefreshTieringSuggestions();
        }
        public void Initialize(FilterAccessFacade filterAccessFacade)
        {
            this.filterAccessFacade = filterAccessFacade;
            var filter = this.filterAccessFacade.PrimaryFilter;

            // access to all the relevant data in the filter
            this.FilterTiers = TierListFacade.GetInstance();

            // dataMatrix Access
            this.SortedBaseTypeMatrix = BaseTypeDataProvider.BaseTypeTieringMatrixData;
        }
Пример #7
0
 private void RefreshStateLabel()
 {
     if (TierListFacade.GetInstance().EnabledSuggestions.ContainsKey(this.BranchKey))
     {
         TierListState.Text = TierListFacade.GetInstance().EnabledSuggestions[this.BranchKey] ? "Enabled" : "Disabled";
     }
     else
     {
         TierListState.Text = "N/A";
     }
 }
        public void GenerateAndAddSuggestions()
        {
            LoggingFacade.LogDebug($"Generating Suggestions for: {this.GoverningSection}");

            this.SuggestionTarget.Clear();
            this.SuggestionTarget.AddRange(this.GenerateSuggestions());

            if (!TierListFacade.GetInstance().EnabledSuggestions.ContainsKey(this.GoverningSection))
            {
                TierListFacade.GetInstance().EnabledSuggestions.Add(this.GoverningSection, Enabled);
            }
            else
            {
                TierListFacade.GetInstance().EnabledSuggestions[this.GoverningSection] = Enabled;
            }
        }
Пример #9
0
        private TierListFacade LoadTierLists(Filter filter)
        {
            TierListFacade tierList = TierListFacade.GetInstance();

            tierList.WriteFolder = Configuration.AppSettings["SeedFile Folder"];

            var workTiers = FilterPolishConstants.FilterTierLists;
            var tiers     = filter.ExtractTiers(workTiers);

            tierList.TierListData = tiers;

            foreach (var item in tierList.TierListData.Values)
            {
                item.ReEvaluate();
            }
            return(tierList);
        }
        public TieringSuggestionView()
        {
            InitializeComponent();
            this.SelectedBranchComboBox.ItemsSource   = FilterPolishConstants.FilterTierLists;
            this.SelectedBranchComboBox.SelectedIndex = 0;

            this.TierListFacade = TierListFacade.GetInstance();
            this.InitializeTieringList();
            this.DataContext = this;

            this.EventGridFacade = EventGridFacade.GetInstance();
            this.EventGridFacade.FilterChangeEvent += EventGridFacade_FilterChangeEvent;

            this.TieringFilters.Add("none", new TieringSuggestionFilter("none", x => true));
            this.TieringFilters.Add("Only Changed", new TieringSuggestionFilter("OnlyChangedFilter", x => x.IsChange));

            this.SelectedTieringFiltersComboBox.ItemsSource = this.TieringFilters.Keys;
            this.SelectedBranchComboBox.SelectedIndex       = 0;
        }
Пример #11
0
        private TierListFacade LoadTierLists(Filter filter)
        {
            LoggingFacade.LogInfo($"Loading Tierlists...");

            TierListFacade tierList = TierListFacade.GetInstance();

            tierList.WriteFolder = Configuration.AppSettings["EcoFile Folder"];

            var workTiers = FilterPolishConfig.FilterTierLists;
            var tiers     = filter.ExtractTiers(workTiers);

            tierList.TierListData = tiers;

            foreach (var item in tierList.TierListData.Values)
            {
                LoggingFacade.LogDebug($"Loading Tierlist: {item.Category}");
                item.ReEvaluate();
            }

            LoggingFacade.LogInfo($"Done Loading Tierlists...");
            return(tierList);
        }
Пример #12
0
        public static void PerformMainRoutine(string req)
        {
            // 0) Cleanup
            EconomyData?.Clean();
            ItemInfoData?.Clean();
            TierListFacade?.Clean();
            FilterAccessFacade?.Clean();

            BaseTypeDataProvider.Initialize();
            EconomyData        = EconomyRequestFacade.GetInstance();
            TierListFacade     = TierListFacade.GetInstance();
            FilterAccessFacade = FilterAccessFacade.GetInstance();
            ItemInfoData       = ItemInformationFacade.GetInstance();

            // 0) Get Current League information etc

            EconomyData.RequestPoeLeagueInfo();

            if (!EconomyData.IsLeagueActive())
            {
                LoggingFacade.LogWarning("No Active League detected!");
            }

            var requestedLeagueName = EconomyData.GetActiveLeagueName();

            // 1) Acquire Data

            var localMode = Environment.GetEnvironmentVariable("localMode", EnvironmentVariableTarget.Process) ?? "true";

            // string body = new StreamReader(req.Body).ReadToEnd();
            // var repoName = GetReqParams(req, data, "repoName", "NeverSink-EconomyUpdated-Filter");
            // var leagueType = GetReqParams(req, data.leagueType, "leagueType", "tmpstandard");

            dynamic data = JsonConvert.DeserializeObject(req);

            string leagueType = data.leagueType ?? "tmpstandard";
            string repoName   = data.repoName ?? "NeverSink-EconomyUpdated-Filter";

            string league = requestedLeagueName; //GetReqParams(req, data, "currentLeague", "Metamorph");

            LoggingFacade.LogInfo($"[CONFIG] leagueType: {leagueType}");
            LoggingFacade.LogInfo($"[CONFIG] league: {league}");
            LoggingFacade.LogInfo($"[CONFIG] repoName: {repoName}");
            LoggingFacade.LogInfo($"[CONFIG] localMode: {localMode}");

            FilterPolishConfig.ApplicationExecutionMode = ExecutionMode.Function;

            if (localMode == "true")
            {
                FilterPolishConfig.ActiveRequestMode = RequestType.Dynamic;
            }
            else
            {
                FilterPolishConfig.ActiveRequestMode = RequestType.ForceOnline;
            }

            DataFiles = new DataFileRequestFacade();
            LoggingFacade.LogInfo($"[CONFIG] FileRequestFacade Created!");

            FileRequestResult dataRes = DataFiles.GetAllFiles(league, leagueType);

            // 3) Parse filter
            FilterAccessFacade.PrimaryFilter = new Filter(DataFiles.SeedFilter);
            var newVersion = FilterAccessFacade.PrimaryFilter.GetHeaderMetaData("VERSION") + "." + DateTime.Now.Year + "." + DateTime.Now.DayOfYear + "." + DateTime.Now.Hour;

            FilterAccessFacade.PrimaryFilter.SetHeaderMetaData("VERSION", newVersion);

            LoggingFacade.LogInfo($"[CONFIG] version: {newVersion}");
            LoggingFacade.LogInfo($"[DEBUG] FileRequestResult: {dataRes.ToString()}");
            LoggingFacade.LogInfo($"[DEBUG] League Active: {EconomyData.IsLeagueActive().ToString()}");

            // null check the ecoData in case of disabled/early leagues
            if (dataRes == FileRequestResult.Success)
            {
                // 4) Load tier list information and enrichment procedures
                var tiers = FilterAccessFacade.PrimaryFilter.ExtractTiers(FilterPolishConfig.FilterTierLists);
                TierListFacade.TierListData = tiers;
                EconomyData.CreateSubEconomyTiers();

                ConcreteEnrichmentProcedures.Initialize();
                EconomyData.EnrichAll(EnrichmentProcedureConfiguration.PriorityEnrichmentProcedures);
                FilterPolishUtil.FilterPolishConfig.AdjustPricingInformation();
                EconomyData.EnrichAll(EnrichmentProcedureConfiguration.EnrichmentProcedures);

                // EconomyData.PerformClassAbstractionProcedures();

                TierListFacade.TierListData.Values.ToList().ForEach(x => x.ReEvaluate());

                // 5) Generate Suggestions
                var economyTieringSystem = new ConcreteEconomyRules();
                economyTieringSystem.GenerateSuggestions();

                // 6) Apply suggestions
                TierListFacade.ApplyAllSuggestions();
            }

            // 7) Generate changelogs
            // todo

            LoggingFacade.LogInfo($"[DEBUG] Seedfiler regeneration done. Starting publishing...");

            // 8) Generate and Upload Filters
            new FilterPublisher(FilterAccessFacade.PrimaryFilter, repoName, leagueType).Run(dataRes);
        }
Пример #13
0
        public static void PerformMainRoutine()
        {
            // 0) Cleanup
            EconomyData?.Clean();
            ItemInfoData?.Clean();
            TierListFacade?.Clean();
            FilterAccessFacade?.Clean();

            EconomyData        = EconomyRequestFacade.GetInstance();
            TierListFacade     = TierListFacade.GetInstance();
            FilterAccessFacade = FilterAccessFacade.GetInstance();
            ItemInfoData       = ItemInformationFacade.GetInstance();

            // 0) Get Current League information etc
            // 1) Acquire Data
            var league    = Environment.GetEnvironmentVariable("ninjaLeague", EnvironmentVariableTarget.Process) ?? "tmpstandard";
            var localMode = Environment.GetEnvironmentVariable("localMode", EnvironmentVariableTarget.Process) ?? "true";

            if (localMode == "true")
            {
                FilterPolishConfig.ActiveRequestMode = RequestType.Dynamic;
            }
            else
            {
                FilterPolishConfig.ActiveRequestMode = RequestType.ForceOnline;
            }

            DataFiles = new DataFileRequestFacade();
            DataFiles.GetAllFiles(league);

            // 2) Test Data
            // todo

            // 3) Parse filter
            FilterAccessFacade.PrimaryFilter = new Filter(DataFiles.SeedFilter);

            // 4) Load ier list information and enrichment procedures
            var tiers = FilterAccessFacade.PrimaryFilter.ExtractTiers(FilterPolishConfig.FilterTierLists);

            TierListFacade.TierListData = tiers;
            CreateSubEconomyTiers();

            ConcreteEnrichmentProcedures.Initialize();
            EconomyData.EnrichAll(EnrichmentProcedureConfiguration.PriorityEnrichmentProcedures);
            FilterPolishUtil.FilterPolishConfig.AdjustPricingInformation();
            EconomyData.EnrichAll(EnrichmentProcedureConfiguration.EnrichmentProcedures);

            TierListFacade.TierListData.Values.ToList().ForEach(x => x.ReEvaluate());

            // 5) Generate Suggestions
            var economyTieringSystem = new ConcreteEconomyRules();

            economyTieringSystem.GenerateSuggestions();

            // 6) Apply suggestions
            TierListFacade.ApplyAllSuggestions();

            // 7) Generate changelogs
            // todo

            // 8) Generate and Upload Filters
            new FilterPublisher(FilterAccessFacade.PrimaryFilter).Run();
        }