From af2dbb9633f616e3d9b308aa4601a8b1cc52171e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iv=C3=A1n=20Lo=20Giudice?= Date: Sun, 2 Feb 2020 02:09:08 -0300 Subject: [PATCH 1/3] normalize normalize --- .../StatisticsAnalysisManager.cs | 287 +++++++++--------- 1 file changed, 143 insertions(+), 144 deletions(-) diff --git a/StatisticsAnalysisTool/StatisticsAnalysisTool/StatisticsAnalysisManager.cs b/StatisticsAnalysisTool/StatisticsAnalysisTool/StatisticsAnalysisManager.cs index 95b85e5cf..f73ab5129 100644 --- a/StatisticsAnalysisTool/StatisticsAnalysisTool/StatisticsAnalysisManager.cs +++ b/StatisticsAnalysisTool/StatisticsAnalysisTool/StatisticsAnalysisManager.cs @@ -1,145 +1,144 @@ -using Newtonsoft.Json; -using Newtonsoft.Json.Linq; -using StatisticsAnalysisTool.Common; -using StatisticsAnalysisTool.Models; -using StatisticsAnalysisTool.Properties; -using System; -using System.Collections.Generic; -using System.Diagnostics; -using System.IO; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows; - -namespace StatisticsAnalysisTool -{ - public class StatisticsAnalysisManager - { - // Info Link -> https://github.com/broderickhyman/ao-bin-dumps - // Models: https://github.com/broderickhyman/albiondata-models-dotNet - - public static List Items; - - private static bool GetItemListSourceUrlIfExist(ref string url) - { - if (string.IsNullOrEmpty(Settings.Default.CurrentItemListSourceUrl)) - { - url = Settings.Default.DefaultItemListSourceUrl; - if (string.IsNullOrEmpty(url)) - return false; - - Settings.Default.CurrentItemListSourceUrl = Settings.Default.DefaultItemListSourceUrl; - MessageBox.Show(LanguageController.Translation("DEFAULT_ITEMLIST_HAS_BEEN_LOADED"), LanguageController.Translation("NOTE")); - } - return true; - } - - private static async Task> TryToGetItemListFromWeb(string url) - { - using (var wd = new WebDownload(30000)) - { - try - { - var itemsString = await wd.DownloadStringTaskAsync(url); - File.WriteAllText($"{AppDomain.CurrentDomain.BaseDirectory}{Settings.Default.ItemListFileName}", itemsString, Encoding.UTF8); - return JsonConvert.DeserializeObject>(itemsString); - } - catch (Exception) - { - try - { - var itemsString = await wd.DownloadStringTaskAsync(Settings.Default.DefaultItemListSourceUrl); - File.WriteAllText($"{AppDomain.CurrentDomain.BaseDirectory}{Settings.Default.ItemListFileName}", itemsString, Encoding.UTF8); - return JsonConvert.DeserializeObject>(itemsString); - } - catch - { - return null; - } - } - } - } - - private static List GetItemListFromLocal() - { - try - { - var localItemString = File.ReadAllText($"{AppDomain.CurrentDomain.BaseDirectory}{Settings.Default.ItemListFileName}"); - return JsonConvert.DeserializeObject>(localItemString); - } - catch - { - return null; - } - } - - public static async Task GetItemListFromJsonAsync() - { - var url = Settings.Default.CurrentItemListSourceUrl; - if (!GetItemListSourceUrlIfExist(ref url)) - return false; - - if (File.Exists($"{AppDomain.CurrentDomain.BaseDirectory}{Settings.Default.ItemListFileName}")) - { - var fileDateTime = File.GetLastWriteTime($"{AppDomain.CurrentDomain.BaseDirectory}{Settings.Default.ItemListFileName}"); - - if (fileDateTime.AddDays(7) < DateTime.Now) - { - Items = await TryToGetItemListFromWeb(url); - return (Items != null); - } - - Items = GetItemListFromLocal(); - return (Items != null); - } - - Items = await TryToGetItemListFromWeb(url); - return (Items != null); - } - - public static async Task> FindItemsAsync(string searchText) - { - return await Task.Run(() => - { - try - { - return Items?.FindAll(s => (s.LocalizedName().ToLower().Contains(searchText.ToLower()))); - } - catch (Exception ex) - { - Debug.Print(ex.Message); - return null; - } - }); - } - - public static FrequentlyValues.ItemTier GetItemTier(string uniqueName) => FrequentlyValues.ItemTiers.FirstOrDefault(x => x.Value == uniqueName.Split('_')[0]).Key; - - public static FrequentlyValues.ItemLevel GetItemLevel(string uniqueName) - { - if (!uniqueName.Contains("@")) - return FrequentlyValues.ItemLevel.Level0; - - if(int.TryParse(uniqueName.Split('@')[1], out int number)) - return FrequentlyValues.ItemLevels.First(x => x.Value == number).Key; - return FrequentlyValues.ItemLevel.Level0; - } - - public static int GetQuality(FrequentlyValues.ItemQuality value) => FrequentlyValues.ItemQualities.FirstOrDefault(x => x.Key == value).Value; - - public static FrequentlyValues.ItemQuality GetQuality(int value) => FrequentlyValues.ItemQualities.FirstOrDefault(x => x.Value == value).Key; - - public static void AddLocalizedName(ref ItemData itemData, JObject parsedObject) +using Newtonsoft.Json; +using Newtonsoft.Json.Linq; +using StatisticsAnalysisTool.Common; +using StatisticsAnalysisTool.Models; +using StatisticsAnalysisTool.Properties; +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; + +namespace StatisticsAnalysisTool +{ + public class StatisticsAnalysisManager + { + // Info Link -> https://github.com/broderickhyman/ao-bin-dumps + // Models: https://github.com/broderickhyman/albiondata-models-dotNet + + public static List Items; + + private static bool GetItemListSourceUrlIfExist(ref string url) { - foreach (var language in Enum.GetValues(typeof(FrequentlyValues.GameLanguage)).Cast()) - { - var cultureCode = FrequentlyValues.GameLanguages.FirstOrDefault(x => x.Key == language).Value; - - if (parsedObject["localizedNames"]?[cultureCode] != null) - itemData.LocalizedNames.Add(new ItemData.KeyValueStruct() { Key = cultureCode, Value = parsedObject["localizedNames"][cultureCode].ToString() }); - } - } - - } -} \ No newline at end of file + if (string.IsNullOrEmpty(Settings.Default.CurrentItemListSourceUrl)) + { + url = Settings.Default.DefaultItemListSourceUrl; + if (string.IsNullOrEmpty(url)) + return false; + + Settings.Default.CurrentItemListSourceUrl = Settings.Default.DefaultItemListSourceUrl; + MessageBox.Show(LanguageController.Translation("DEFAULT_ITEMLIST_HAS_BEEN_LOADED"), LanguageController.Translation("NOTE")); + } + return true; + } + + private static async Task> TryToGetItemListFromWeb(string url) + { + using (var wd = new WebDownload(30000)) + { + try + { + var itemsString = await wd.DownloadStringTaskAsync(url); + File.WriteAllText($"{AppDomain.CurrentDomain.BaseDirectory}{Settings.Default.ItemListFileName}", itemsString, Encoding.UTF8); + return JsonConvert.DeserializeObject>(itemsString); + } + catch (Exception) + { + try + { + var itemsString = await wd.DownloadStringTaskAsync(Settings.Default.DefaultItemListSourceUrl); + File.WriteAllText($"{AppDomain.CurrentDomain.BaseDirectory}{Settings.Default.ItemListFileName}", itemsString, Encoding.UTF8); + return JsonConvert.DeserializeObject>(itemsString); + } + catch + { + return null; + } + } + } + } + + private static List GetItemListFromLocal() + { + try + { + var localItemString = File.ReadAllText($"{AppDomain.CurrentDomain.BaseDirectory}{Settings.Default.ItemListFileName}"); + return JsonConvert.DeserializeObject>(localItemString); + } + catch + { + return null; + } + } + + public static async Task GetItemListFromJsonAsync() + { + var url = Settings.Default.CurrentItemListSourceUrl; + if (!GetItemListSourceUrlIfExist(ref url)) + return false; + + if (File.Exists($"{AppDomain.CurrentDomain.BaseDirectory}{Settings.Default.ItemListFileName}")) + { + var fileDateTime = File.GetLastWriteTime($"{AppDomain.CurrentDomain.BaseDirectory}{Settings.Default.ItemListFileName}"); + + if (fileDateTime.AddDays(7) < DateTime.Now) + { + Items = await TryToGetItemListFromWeb(url); + return (Items != null); + } + + Items = GetItemListFromLocal(); + return (Items != null); + } + + Items = await TryToGetItemListFromWeb(url); + return (Items != null); + } + + public static async Task> FindItemsAsync(string searchText) + { + return await Task.Run(() => + { + try + { + return Items?.FindAll(s => (s.LocalizedName().ToLower().Contains(searchText.ToLower()))); + } + catch (Exception ex) + { + Debug.Print(ex.Message); + return null; + } + }); + } + + public static FrequentlyValues.ItemTier GetItemTier(string uniqueName) => FrequentlyValues.ItemTiers.FirstOrDefault(x => x.Value == uniqueName.Split('_')[0]).Key; + + public static FrequentlyValues.ItemLevel GetItemLevel(string uniqueName) + { + if (!uniqueName.Contains("@")) + return FrequentlyValues.ItemLevel.Level0; + + if(int.TryParse(uniqueName.Split('@')[1], out int number)) + return FrequentlyValues.ItemLevels.First(x => x.Value == number).Key; + return FrequentlyValues.ItemLevel.Level0; + } + + public static int GetQuality(FrequentlyValues.ItemQuality value) => FrequentlyValues.ItemQualities.FirstOrDefault(x => x.Key == value).Value; + + public static FrequentlyValues.ItemQuality GetQuality(int value) => FrequentlyValues.ItemQualities.FirstOrDefault(x => x.Value == value).Key; + + public static void AddLocalizedName(ref ItemData itemData, JObject parsedObject) + { + foreach (var language in Enum.GetValues(typeof(FrequentlyValues.GameLanguage)).Cast()) + { + var cultureCode = FrequentlyValues.GameLanguages.FirstOrDefault(x => x.Key == language).Value; + + if (parsedObject["localizedNames"]?[cultureCode] != null) + itemData.LocalizedNames.Add(new ItemData.KeyValueStruct() { Key = cultureCode, Value = parsedObject["localizedNames"][cultureCode].ToString() }); + } + } + } +} From 4e4aed6377280016bf9951d55737a42f7206866c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iv=C3=A1n=20Lo=20Giudice?= Date: Sun, 2 Feb 2020 02:10:03 -0300 Subject: [PATCH 2/3] Support search by localized and english version --- .../StatisticsAnalysisTool/StatisticsAnalysisManager.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/StatisticsAnalysisTool/StatisticsAnalysisTool/StatisticsAnalysisManager.cs b/StatisticsAnalysisTool/StatisticsAnalysisTool/StatisticsAnalysisManager.cs index f73ab5129..595a568b4 100644 --- a/StatisticsAnalysisTool/StatisticsAnalysisTool/StatisticsAnalysisManager.cs +++ b/StatisticsAnalysisTool/StatisticsAnalysisTool/StatisticsAnalysisManager.cs @@ -104,7 +104,7 @@ public static async Task> FindItemsAsync(string searchText) { try { - return Items?.FindAll(s => (s.LocalizedName().ToLower().Contains(searchText.ToLower()))); + return Items?.FindAll(s => (s.LocalizedNameAndEnglish().ToLower().Contains(searchText.ToLower()))); } catch (Exception ex) { From 13e47a36f9be525a1b23c40d2d881aa763b5ae5b Mon Sep 17 00:00:00 2001 From: Aaron Schultz Date: Sun, 2 Feb 2020 16:23:54 +0100 Subject: [PATCH 3/3] Unused class removed + LocalizedNameAndEnglish fix --- .../StatisticsAnalysisTool/MainWindow.xaml | 4 +-- .../Models/ItemWithMarketInformation.cs | 32 ------------------- .../StatisticsAnalysisManager.cs | 2 +- .../StatisticsAnalysisTool.csproj | 1 - 4 files changed, 3 insertions(+), 36 deletions(-) delete mode 100644 StatisticsAnalysisTool/StatisticsAnalysisTool/Models/ItemWithMarketInformation.cs diff --git a/StatisticsAnalysisTool/StatisticsAnalysisTool/MainWindow.xaml b/StatisticsAnalysisTool/StatisticsAnalysisTool/MainWindow.xaml index 64db0f9ec..06723b531 100644 --- a/StatisticsAnalysisTool/StatisticsAnalysisTool/MainWindow.xaml +++ b/StatisticsAnalysisTool/StatisticsAnalysisTool/MainWindow.xaml @@ -23,7 +23,7 @@ - + - +