Exemplo n.º 1
0
        /// <summary>
        /// Создание таблицы спецификации блоков, с запросом выбора блоков у пользователя.
        /// Таблица будет вставлена в указанное место пользователем в текущем пространстве.
        /// </summary>
        public void CreateTable()
        {
            // Выбор блоков
            SelBlocks.Select();

            using (var t = Doc.TransactionManager.StartTransaction())
            {
                try
                {
                    // Фильтрация блоков
                    Items = SpecItem.FilterSpecItems(this);
                    // Группировка элементов
                    Groups = SpecGroup.Grouping(this);

                    // Создание таблицы
                    Table table = getTable();
                    // Вставка таблицы
                    insertTable(table);
                }
                catch (Exception ex)
                {
                    Logger.Log.Error(ex, "SpecTable.CreateTable().");
                    Inspector.AddError(ex.Message);
                }

                t.Commit();
            }
        }
Exemplo n.º 2
0
 public static List<SpecGroup> Grouping(SpecTable specTable)
 {
    List<SpecGroup> groups = new List<SpecGroup>();
    var itemsGroupBy = specTable.Items.GroupBy(i => i.Group).OrderBy(g => g.Key);
    foreach (var itemGroup in itemsGroupBy)
    {
       SpecGroup group = new SpecGroup(itemGroup.Key);
       group.Calc(itemGroup, specTable);
       // проверка уникальности элементов в группе
       group.Check(specTable);
       groups.Add(group);
    }
    return groups;
 }
Exemplo n.º 3
0
        public static List <SpecGroup> Grouping(SpecTable specTable)
        {
            List <SpecGroup> groups = new List <SpecGroup>();
            var itemsGroupBy        = specTable.Items.GroupBy(i => i.Group).OrderBy(g => g.Key);

            foreach (var itemGroup in itemsGroupBy)
            {
                SpecGroup group = new SpecGroup(itemGroup.Key);
                group.Calc(itemGroup, specTable);
                // проверка уникальности элементов в группе
                group.Check(specTable);
                groups.Add(group);
            }
            return(groups);
        }