예제 #1
0
        private void SetEntities()
        {
            Message.BaseEntity = bizTableDrivedEntity.GetTableDrivedEntity(MyProjectManager.GetMyProjectManager.GetRequester(), EntityID, EntityColumnInfoType.WithSimpleColumns, EntityRelationshipInfoType.WithRelationships);
            lblEntityName.Text = Message.BaseEntity.Name;

            BizISARelationship bizISARelationship = new BizISARelationship();

            Message.ISARelationship = bizISARelationship.GetInternalTableISARelationships(EntityID);
            if (Message.ISARelationship != null)
            {
                if (Message.ISARelationship.IsTolatParticipation)
                {
                    optIsTolatParticipation.IsChecked = true;
                }
                else
                {
                    optIsPartialParticipation.IsChecked = true;
                }
                if (Message.ISARelationship.IsDisjoint)
                {
                    optIsDisjoint.IsChecked = true;
                }
                else
                {
                    optIsOverlap.IsChecked = true;
                }
            }
            else
            {
                Message.ISARelationship = new ISARelationshipDTO();
            }

            if (Message.ISARelationship.ID != 0)
            {
                List <SuperToSubRelationshipDTO> listSuperToSubRels = new List <SuperToSubRelationshipDTO>();
                var drivedEntities = bizTableDrivedEntity.GetOtherDrivedEntityIDs(Message.ISARelationship);
                foreach (var id in drivedEntities)
                {
                    var entity = bizTableDrivedEntity.GetTableDrivedEntity(MyProjectManager.GetMyProjectManager.GetRequester(), id, EntityColumnInfoType.WithSimpleColumns, EntityRelationshipInfoType.WithRelationships);
                    List <RelationshipDTO>    removeRelationships    = new List <RelationshipDTO>();
                    SubToSuperRelationshipDTO subToSuperRelationship = null;
                    SuperToSubRelationshipDTO superToSubRelationship = null;

                    foreach (var item in entity.Relationships.Where(x => x.TypeEnum == Enum_RelationshipType.SubToSuper))
                    {
                        if (item is SubToSuperRelationshipDTO)
                        {
                            if ((item as SubToSuperRelationshipDTO).ISARelationship.ID == Message.ISARelationship.ID)
                            {
                                subToSuperRelationship = (item as SubToSuperRelationshipDTO);
                                superToSubRelationship = Message.BaseEntity.Relationships.FirstOrDefault(x => x.ID == (item as SubToSuperRelationshipDTO).PairRelationshipID) as SuperToSubRelationshipDTO;
                            }
                        }
                    }

                    if (subToSuperRelationship != null && superToSubRelationship != null)
                    {
                        entity.Relationships.Remove(subToSuperRelationship);
                        Message.BaseEntity.Relationships.Remove(superToSubRelationship);

                        AddDrivedEntityTab(new Tuple <SuperToSubRelationshipDTO, SubToSuperRelationshipDTO, TableDrivedEntityDTO>(superToSubRelationship, subToSuperRelationship, entity));
                    }
                }
            }
            dtgRelationships.ItemsSource = Message.BaseEntity.Relationships;
            dtgColumns.ItemsSource       = Message.BaseEntity.Columns;
        }