Exemple #1
0
        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();
        }