Beispiel #1
0
            /// <summary>
            /// Internal constraints are not fully connected at this point (FactSetConstraint instances
            /// are not implicitly constructed until a later phase), so we need to work a little harder
            /// to remove them.
            /// </summary>
            /// <param name="factType">The fact to clear of external constraints</param>
            private static void RemoveFactType(FactType factType)
            {
                LinkedElementCollection <RoleBase> factRoles = factType.RoleCollection;
                int roleCount = factRoles.Count;

                for (int i = 0; i < roleCount; ++i)
                {
                    Role role = factRoles[i].Role;
                    LinkedElementCollection <ConstraintRoleSequence> sequences = role.ConstraintRoleSequenceCollection;
                    int sequenceCount = sequences.Count;
                    for (int j = sequenceCount - 1; j >= 0; --j)
                    {
                        SetConstraint ic = sequences[j] as SetConstraint;
                        if (ic != null && ic.Constraint.ConstraintIsInternal)
                        {
                            ic.Delete();
                        }
                    }
                }
                factType.Delete();
            }