Exemplo n.º 1
0
        /// <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);
        }
Exemplo n.º 2
0
        /// <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);
        }