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); }
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; }
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; } }
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; }
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); }
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); }
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(); }