/// <summary> /// Exports the cache list to a serializable object. /// </summary> /// <returns></returns> private static SerializableECItemPrices Export() { IEnumerable <SerializableECItemPriceListItem> entitiesList = PriceByItemID .OrderBy(x => x.Key) .Select( item => new SerializableECItemPriceListItem { ID = item.Key, Prices = new SerializableECItemPriceItem { Average = item.Value } }); SerializableECItemPrices serial = new SerializableECItemPrices(); serial.ItemPrices.AddRange(entitiesList); return(serial); }
/// <summary> /// Loads from file. /// </summary> /// <param name="file">The file.</param> private void LoadFromFile(string file) { CachedUntil = File.GetLastWriteTimeUtc(file).AddDays(1); // Deserialize the xml file SerializableECItemPrices result = Util.DeserializeXmlFromFile <SerializableECItemPrices>(file); // In case the file is an old one, we try to get a fresh copy if (result == null || CachedUntil < DateTime.UtcNow) { Task.WhenAll(GetPricesAsync()); return; } PriceByItemID.Clear(); Loaded = false; // Import the data Import(result.ItemPrices); }