public void ConvertEnds() { // Преобразование торцов фасада List <ConvertEndsFacade> convertsEnds = new List <ConvertEndsFacade>(); DoubleEqualityComparer comparer = new DoubleEqualityComparer(500); // Все вхождения блоков панелей с торцами слева var panelsWithLeftEndsByX = PanelsBtrExport.SelectMany(pBtr => pBtr.Panels). Where(pBlRef => pBlRef.PanelBtrExport.IdsEndsLeftEntity.Count > 0). GroupBy(pBlRef => pBlRef.Position.X, comparer); foreach (var itemLefEndsByY in panelsWithLeftEndsByX) { try { ConvertEndsFacade convertEndsFacade = new ConvertEndsFacade(itemLefEndsByY, true, this); convertEndsFacade.Convert(); convertsEnds.Add(convertEndsFacade); } catch (Exception ex) { Inspector.AddError($"Ошибка преобразования торцов панелей с координатой X точки вставки = {itemLefEndsByY.Key}. {ex}"); } } // Все вхождения блоков панелей с торцами справа var panelsWithRightEndsByX = PanelsBtrExport.SelectMany(pBtr => pBtr.Panels). Where(pBlRef => pBlRef.PanelBtrExport.IdsEndsRightEntity.Count > 0). GroupBy(pBlRef => pBlRef.Position.X, comparer); foreach (var itemRightEndsByY in panelsWithRightEndsByX) { try { ConvertEndsFacade convertEndsFacade = new ConvertEndsFacade(itemRightEndsByY, false, this); convertEndsFacade.Convert(); convertsEnds.Add(convertEndsFacade); } catch (Exception ex) { Inspector.AddError($"Ошибка преобразования торцов панелей с координатой X точки вставки = {itemRightEndsByY.Key}. {ex}"); } } // удаление торцов convertsEnds.ForEach(c => c.DeleteEnds()); }
public void ConvertEnds() { // Преобразование торцов фасада List<ConvertEndsFacade> convertsEnds = new List<ConvertEndsFacade>(); DoubleEqualityComparer comparer = new DoubleEqualityComparer(500); // Все вхождения блоков панелей с торцами слева var panelsWithLeftEndsByX = PanelsBtrExport.SelectMany(pBtr => pBtr.Panels). Where(pBlRef => pBlRef.PanelBtrExport.IdsEndsLeftEntity.Count > 0). GroupBy(pBlRef => pBlRef.Position.X, comparer); foreach (var itemLefEndsByY in panelsWithLeftEndsByX) { try { ConvertEndsFacade convertEndsFacade = new ConvertEndsFacade(itemLefEndsByY, true, this); convertEndsFacade.Convert(); convertsEnds.Add(convertEndsFacade); } catch (Exception ex) { Inspector.AddError($"Ошибка преобразования торцов панелей с координатой X точки вставки = {itemLefEndsByY.Key}. {ex}"); } } // Все вхождения блоков панелей с торцами справа var panelsWithRightEndsByX = PanelsBtrExport.SelectMany(pBtr => pBtr.Panels). Where(pBlRef => pBlRef.PanelBtrExport.IdsEndsRightEntity.Count > 0). GroupBy(pBlRef => pBlRef.Position.X, comparer); foreach (var itemRightEndsByY in panelsWithRightEndsByX) { try { ConvertEndsFacade convertEndsFacade = new ConvertEndsFacade(itemRightEndsByY, false, this); convertEndsFacade.Convert(); convertsEnds.Add(convertEndsFacade); } catch (Exception ex) { Inspector.AddError($"Ошибка преобразования торцов панелей с координатой X точки вставки = {itemRightEndsByY.Key}. {ex}"); } } // удаление торцов convertsEnds.ForEach(c => c.DeleteEnds()); }