Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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();
        }