public void LoadPrices(IPriceProvider a_PriceProvider, Settings.V2._PriceSettings a_Settings, bool a_Silent) { StopUpdaterThread(); m_ItemsDB.ResetItemPrices(); ItemPrices.PricesDataTable pricesTable = new ItemPrices.PricesDataTable(); string selectSQL = "Select * from " + pricesTable.TableName + " where " + "(" + pricesTable.ProviderIDColumn.ColumnName + " = @ProviderID) AND " + "(" + pricesTable.RegionIDColumn.ColumnName + " = @RegionID) AND " + "(" + pricesTable.SolarIDColumn.ColumnName + " = @SolarID) AND " + "(" + pricesTable.StationIDColumn.ColumnName + " = @StationID) AND" + "(" + pricesTable.PriceTypeColumn.ColumnName + " = @PriceType)"; SQLiteCommand sqlCommand = new SQLiteCommand(selectSQL, m_DbConnection); PriceRecord priceFilter = a_PriceProvider.GetCurrentFilter(); sqlCommand.Parameters.AddWithValue("@ProviderID", (UInt32)priceFilter.Provider); sqlCommand.Parameters.AddWithValue("@RegionID", priceFilter.RegionID); sqlCommand.Parameters.AddWithValue("@SolarID", priceFilter.SolarID); sqlCommand.Parameters.AddWithValue("@StationID", priceFilter.StationID); sqlCommand.Parameters.AddWithValue("@PriceType", (UInt32)priceFilter.PriceType); SQLiteDataAdapter adapter = new SQLiteDataAdapter(sqlCommand); adapter.Fill(pricesTable); foreach (ItemPrices.PricesRow currRow in pricesTable.Rows) { DbRecordToItemRecord(currRow); } TestMarketPrices(a_PriceProvider, a_Settings, a_Silent); }
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); }
public void DropPrices(IPriceProvider a_PriceProvider) { StopUpdaterThread(); ItemPrices.PricesDataTable pricesTable = new ItemPrices.PricesDataTable(); string selectSQL = "Delete from " + pricesTable.TableName + " where " + "(" + pricesTable.ProviderIDColumn.ColumnName + " = @ProviderID) AND " + "(" + pricesTable.RegionIDColumn.ColumnName + " = @RegionID) AND " + "(" + pricesTable.SolarIDColumn.ColumnName + " = @SolarID) AND " + "(" + pricesTable.StationIDColumn.ColumnName + " = @StationID) AND" + "(" + pricesTable.PriceTypeColumn.ColumnName + " = @PriceType)"; SQLiteCommand sqlCommand = new SQLiteCommand(selectSQL, m_DbConnection); PriceRecord priceFilter = a_PriceProvider.GetCurrentFilter(); sqlCommand.Parameters.AddWithValue("@ProviderID", (UInt32)priceFilter.Provider); sqlCommand.Parameters.AddWithValue("@RegionID", priceFilter.RegionID); sqlCommand.Parameters.AddWithValue("@SolarID", priceFilter.SolarID); sqlCommand.Parameters.AddWithValue("@StationID", priceFilter.StationID); sqlCommand.Parameters.AddWithValue("@PriceType", (UInt32)priceFilter.PriceType); sqlCommand.ExecuteNonQuery(); }