private void MakeRefineryItemList() { UInt32 characterID = ((TextItemWithUInt32)TlbCmbCharacter.SelectedItem).Data; ItemAssets container = (ItemAssets)TextItemWithObject.GetData(TlbCmbContainer.SelectedItem); m_SelectedAssets = null; if (character_AllItems != characterID) { AssetFilter assetFilter = 0; if (TlbChkIgnoreContainers.Checked) { assetFilter |= AssetFilter.NoAssembledContainers; } if (TlbChkIgnoreShips.Checked) { assetFilter |= AssetFilter.NoAssembledShips; } if (TlbChkIgnoreAssembled.Checked) { assetFilter |= AssetFilter.NoAssembled; } m_SelectedAssets = m_Assets.GetAssetsList(container, assetFilter); } ItemFilter filter = new ItemFilter(); filter.Published = TristateFilter.Yes; filter.PlainMaterials = TristateFilter.Yes; if (m_SelectedAssets != null) { filter.AssetsFilter = m_SelectedAssets; } SetupListItemsData(m_ItemsDB.FilterItems(filter), m_SelectedAssets); UpdateTotalsRow(); // Optimization: pre-fill all column data (saves around 1 sec) Hashtable columnData = new Hashtable(); foreach (MainListItem listItem in m_ItemList) { Object[] columnValues = GetListItemColumnData(listItem); columnData.Add(listItem.TypeID, columnValues); } CompareItemBase comparer = new CompareColumn(m_SortType, columnData); comparer.SetParameters(m_SortDirection); Array.Sort(m_ItemList, comparer); LstRefinery.VirtualListSize = m_ItemList.Count(); UpdateLstRefinery(); }
private void TestMarketPrices(IPriceProvider a_PriceProvider, Settings.V2._PriceSettings a_Settings, bool a_Silent) { ItemFilter filter = new ItemFilter(); filter.HasMarketGroup = TristateFilter.Yes; filter.IsPricesOk = TristateFilter.No; filter.PriceExpiryDays = a_Settings.ExpiryDays; UInt32[] badItems = m_ItemsDB.FilterItems(filter); if (0 == badItems.Count()) { return; } if (!a_Silent) { if (DialogResult.Yes != MessageBox.Show("You have outdated market prices. Would you like to update them now?", Application.ProductName, MessageBoxButtons.YesNo)) { return; } } Queue <UInt32> pricesQueue = new Queue <UInt32>(); foreach (UInt32 currItem in badItems) { pricesQueue.Enqueue(currItem); } StopUpdaterThread(); UpdateThreadParam param = new UpdateThreadParam(); param.PriceProvider = a_PriceProvider; param.UpdateQueue = pricesQueue; ThreadWithParam paramThread = new ThreadWithParam(); paramThread.Function = ThreadQueryMarketPrices; paramThread.Parameter = param; m_EndUpdateThread = false; m_UpdateQueue = pricesQueue; m_UpdateThread = paramThread.CreateThread(); m_UpdateThread.IsBackground = true; m_UpdateThread.Start(); }