/// <inheritdoc/> public void Save() { try { _settingStore.Save(CurrentSetting); NotifySettingsChanged(); } catch (Exception ex) { // TODO replace Console.Writeline with some form of logging Console.WriteLine(ex.Message); } }
public async Task <Ranking> GetRanking(SearchIndexType indexType) { bool cached = false; string response = null; var key = string.Format("{0}:{1}", CountryType, indexType); var filename = string.Format("{0}.xml", indexType); bool cache; var pre = _settingStore.Load <DateTime>(key, out cache); if (cache) { var diff = DateTime.Now - pre; if (diff.CompareTo(TimeSpan.FromMinutes(30)) < 0) { response = await _serializer.ReadFile(CountryType.ToString(), filename); cached = response != null; } else { Enumerable.Range(2, 9).ForEach(async i => { var deleteName = string.Format("{0}_{1}.xml", indexType, i); await _serializer.DeleteFile(CountryType.ToString(), deleteName); }); } } if (response == null) { response = await _service.ItemSearchAsync(CountryType, indexType, 1); if (string.IsNullOrEmpty(response)) { return(null); } _serializer.WriteFile(CountryType.ToString(), filename, response); _settingStore.Save(key, DateTime.Now.ToString()); } var items = _parser.Parse(response).Where(x => !x.Attributes.IsAdultProduct); return(new Ranking(this) { IndexType = indexType, Items = items, Cached = cached }); }