private static async Task <List <Item> > 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 <List <Item> >(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 <List <Item> >(itemsString)); } catch { return(null); } } } }
public static async Task <bool> GetItemsFromJsonAsync() { var url = ItemListSourceUrl; if (string.IsNullOrEmpty(ItemListSourceUrl)) { url = Settings.Default.DefaultItemListSourceUrl; if (string.IsNullOrEmpty(url)) { return(false); } var ini = new IniFile(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, Settings.Default.SettingsFileName)); ini.WriteValue("Settings", "ItemListSourceUrl", url); MessageBox.Show(LanguageController.Translation("DEFAULT_ITEMLIST_HAS_BEEN_LOADED"), LanguageController.Translation("NOTE")); } 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) { using (var wc = new WebClient()) { var itemString = await wc.DownloadStringTaskAsync(url); File.WriteAllText($"{AppDomain.CurrentDomain.BaseDirectory}{Settings.Default.ItemListFileName}", itemString, Encoding.UTF8); try { Items = JsonConvert.DeserializeObject <List <Item> >(itemString); } catch (Exception ex) { Debug.Print(ex.Message); Items = null; return(false); } return(true); } } try { var localItemString = File.ReadAllText($"{AppDomain.CurrentDomain.BaseDirectory}{Settings.Default.ItemListFileName}"); Items = JsonConvert.DeserializeObject <List <Item> >(localItemString); } catch (Exception ex) { Debug.Print(ex.Message); Items = null; return(false); } return(true); } using (var wd = new WebDownload(30000)) { try { var itemsString = await wd.DownloadStringTaskAsync(url); File.WriteAllText($"{AppDomain.CurrentDomain.BaseDirectory}{Settings.Default.ItemListFileName}", itemsString, Encoding.UTF8); Items = JsonConvert.DeserializeObject <List <Item> >(itemsString); return(true); } catch (Exception) { try { var itemsString = await wd.DownloadStringTaskAsync(Settings.Default.DefaultItemListSourceUrl); File.WriteAllText($"{AppDomain.CurrentDomain.BaseDirectory}{Settings.Default.ItemListFileName}", itemsString, Encoding.UTF8); Items = JsonConvert.DeserializeObject <List <Item> >(itemsString); return(true); } catch (Exception) { return(false); } } } }