/// <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(); } }
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; }
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); }