private static void DbRecordToItemRecord(ItemPrices.PricesRow a_DbRecord, ItemRecord a_ItemRecord) { lock (a_ItemRecord) { a_ItemRecord.PriceDate = DateTime.FromFileTimeUtc(Convert.ToInt64(a_DbRecord.UpdateTime)); a_ItemRecord.Price = a_DbRecord.Price; } }
private void DbRecordToItemRecord(ItemPrices.PricesRow a_DbRecord) { ItemRecord currItem = m_ItemsDB.GetItemByTypeID(a_DbRecord.TypeID); if (currItem == null) { return; } DbRecordToItemRecord(a_DbRecord, currItem); }
private void ApplyPrices(List <PriceRecord> a_Prices, PriceRecord a_Filter) { ItemPrices.PricesDataTable newDbData = new ItemPrices.PricesDataTable(); foreach (PriceRecord currRecord in a_Prices) { ItemPrices.PricesRow dbRecord = newDbData.NewPricesRow(); PriceRecordToDbRecord(currRecord, dbRecord); newDbData.Rows.Add(dbRecord); // Price provider can return more data then requested (for example, all price types at once, or all regions at once). // If data matches currently selected filter, apply it to loaded items. if (currRecord.IsMatchesFilter(a_Filter)) { DbRecordToItemRecord(dbRecord); } } // Store everything in database m_Database.ReplaceRows(newDbData, newDbData.Rows); }
private static void PriceRecordToDbRecord(PriceRecord a_PriceRecord, ItemPrices.PricesRow a_DbRecord) { a_DbRecord.ProviderID = (UInt32)a_PriceRecord.Provider; a_DbRecord.RegionID = a_PriceRecord.RegionID; a_DbRecord.SolarID = a_PriceRecord.SolarID; a_DbRecord.StationID = a_PriceRecord.StationID; a_DbRecord.PriceType = (UInt32)a_PriceRecord.PriceType; a_DbRecord.TypeID = a_PriceRecord.TypeID; a_DbRecord.Price = a_PriceRecord.Price; a_DbRecord.UpdateTime = a_PriceRecord.UpdateTime; }