Ejemplo n.º 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();
        }
Ejemplo n.º 2
0
        public void Check(List <List <object> > table, int tableHeaderRowsCount)
        {
            if (table.Count <= 0)
            {
                return;
            }

            var rowBegin    = m_validations.Min(x => x.CellRange.RowBegin);
            var columnBegin = m_validations.Min(x => x.CellRange.ColumnBegin);
            var rowEnd      = m_validations.Max(x => x.CellRange.RowEnd);
            var columnEnd   = m_validations.Max(x => x.CellRange.ColumnEnd);

            for (int i = 0; i < table.Count; i++)
            {
                if (i < rowBegin || i > rowEnd)
                {
                    continue;
                }

                var row       = table[i];
                var newRowDic = JudgeColumn == null
                    ? row.ToList().Select((cell, iCell) => new { cell, iCell }).ToDictionary(x => x.iCell, x => x.cell)
                    : JudgeColumn.ExceptCellByColumn(table, i);

                for (int j = 0; j < row.Count; j++)
                {
                    if (j < columnBegin || j > columnEnd || (!newRowDic.Keys.Contains(j)))
                    {
                        continue;
                    }

                    var cell     = row[j];
                    var cellText = cell == null ? string.Empty : cell.ToString();
                    foreach (var validation in m_validations)
                    {
                        if (validation.CellRange.Contains(i, j) &&
                            !validation.CellValidation.IsValid(cellText))
                        {
                            CommUtils.Assert(false, "文档检查错误,第{0}行第{1}列:{2}",
                                             i + 1 + tableHeaderRowsCount, j + 1, validation.CellValidation.ErrorMsg);
                        }
                    }
                }

                if (CompareColumn != null)
                {
                    CommUtils.Assert(CompareColumn.CompareColumn(table, i), "文档检查错误, 第{0}行:{1}",
                                     i + 1, CompareColumn.ErrorMsg);
                }
            }
        }