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 static TieringChange FromTieringCommand(TieringCommand item) { TieringChange result = new TieringChange(); result.BaseType = item.BaseType; result.OldTier = item.OldTier; result.NewTier = item.NewTier; result.Reason = item.AppliedRule; result.Confidence = item.Confidence; result.Category = item.Group; result.Change = TranslateChange(item); if (!item.Group.ToLower().Contains("rare")) { var items = ItemInformationFacade.GetInstance()[item.Group, item.BaseType]; if (items != null) { result.InnerInformation = items.GroupBy(x => x.Name) .Select(x => x.First()) .Select(x => new TieringChangeInnerItemInformaiton() { Name = x.Name, Icon = "", Aspects = null }) .ToList(); } } return(result); }
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")); }
private ItemInformationFacade LoadItemInformationOverview() { ItemInformationFacade result = ItemInformationFacade.GetInstance(); var leagueType = Configuration.AppSettings["Ninja League"]; var baseStoragePath = Configuration.AppSettings["Aspect Folder"]; result.LeagueType = leagueType; result.BaseStoragePath = baseStoragePath; var branchKeys = FilterPolishConstants.TierableEconomySections; branchKeys.ForEach(key => result.EconomyTierListOverview.Add(key, new Dictionary <string, List <ItemInformationData> >())); result.LoadFromSaveFile(); return(result); }
public FileRequestResult GetAllFiles(string league, string leagueType) { LoggingFacade.LogInfo($"Starting file request"); this.LeagueType = leagueType; // Lade Filter Datei -> NS main github -> selective file(s?) // Lade Style Dateien -> NS main github -> selective files // Lade Aspect Dateien -> https://github.com/NeverSinkDev/Filter-ItemEconomyAspects -> ALL LoggingFacade.LogInfo($"GitHub file download... starting"); this.LoadGitHubFiles(); LoggingFacade.LogInfo($"GitHub file download... done"); // Lade BaseType Datei -> FB LoggingFacade.LogInfo($"BaseType Data Request: done"); this.BaseTypeData = FilterCore.Constants.BaseTypeDataProvider.BaseTypeData; // Lade Economy Dateien -> ninja API var ecoRes = this.LoadEcoData(league, leagueType); LoggingFacade.LogInfo($"Ninja Eco Request Done: done"); if (ecoRes == FileRequestResult.Fail) { LoggingFacade.LogInfo($"Ninja Eco Request Done: failed"); return(ecoRes); } var itemData = ItemInformationFacade.GetInstance(); var economyData = EconomyRequestFacade.GetInstance(); foreach (var branchKey in economyData.EconomyTierlistOverview.Keys) { itemData.Deserialize(branchKey, String.Join(Environment.NewLine, this.ItemAspects[branchKey.Replace("->", "")])); itemData.MigrateAspectDataToEcoData(economyData, branchKey); } return(ecoRes); }
public void GetAllFiles(string ninjaLeague) { FilterPolishUtil.Model.LoggingFacade.GetInstance().CustomLoggingAction = x => Console.WriteLine("err: " + x); // Lade Filter Datei -> NS main github -> selective file(s?) // Lade Style Dateien -> NS main github -> selective files // Lade Aspect Dateien -> https://github.com/NeverSinkDev/Filter-ItemEconomyAspects -> ALL this.LoadGitHubFiles(); // Lade BaseType Datei -> FB this.BaseTypeData = FilterCore.Constants.BaseTypeDataProvider.BaseTypeData; // Lade Economy Dateien -> ninja API this.LoadEcoData(ninjaLeague); var itemData = ItemInformationFacade.GetInstance(); var economyData = EconomyRequestFacade.GetInstance(); foreach (var branchKey in economyData.EconomyTierlistOverview.Keys) { itemData.Deserialize(branchKey, String.Join(Environment.NewLine, this.ItemAspects[branchKey.Replace("->", "")])); itemData.MigrateAspectDataToEcoData(economyData, branchKey); } }
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(); }