Пример #1
0
        private Group TemporaryCopyExistingGroupOrFindExisting(Group g)
        {
            Group tempG = workspace.FindEquivalentGroup(g, false);

            if (tempG != null)
            {
                return(tempG);
            }

            tempG = new TemporaryGroup(workspace);

            foreach (GroupElement ge in g.GroupElements)
            {
                if (ge is Group)
                {
                    tempG.AddGroupElement(TemporaryCopyExistingGroupOrFindExisting((Group)ge));
                }
                else
                {
                    tempG.AddGroupElement(ge);
                }
            }

            foreach (GroupReason r in g.Reasons)
            {
                tempG.AddGroupReason(r);
                r.ReplaceGroup(tempG);
            }
            foreach (GroupPenaltyReason r in g.PenaltyReasons)
            {
                tempG.AddGroupPenaltyReason(r);
                r.ReplaceGroup(tempG);
            }

            return(tempG);
        }