public ISARelationshipDTO GetISARelationships(int baseEntityID, int drivedEntitID)
        {
            ISARelationshipDTO result = new ISARelationshipDTO();

            using (var projectContext = new MyIdeaEntities())
            {
                var isaRelationship = projectContext.Relationship.First(x => x.TableDrivedEntityID2 == baseEntityID && x.RelationshipType.SubToSuperRelationshipType != null).RelationshipType.SubToSuperRelationshipType.ISARelationship;
                return(ToISARelationshipDTO(isaRelationship));
            }
        }
        public int Save(ISARelationshipDTO item)
        {
            using (var projectContext = new MyIdeaEntities())
            {
                ISARelationship dbItem = null;
                if (item.ID == 0)
                {
                    dbItem = new ISARelationship();
                    projectContext.ISARelationship.Add(dbItem);
                }
                else
                {
                    dbItem = projectContext.ISARelationship.First(x => x.ID == item.ID);
                }

                dbItem.Name                 = item.Name;
                dbItem.IsDisjoint           = item.IsDisjoint;
                dbItem.IsGeneralization     = item.IsGeneralization;
                dbItem.IsSpecialization     = !item.IsSpecialization;
                dbItem.IsTolatParticipation = item.IsTolatParticipation;
                projectContext.SaveChanges();
                return(dbItem.ID);
            }
        }
        //public List<ISARelationshipDTO> GetISARelationships(int tableDrivedEntityID)
        //{
        //    List<ISARelationshipDTO> result = new List<ISARelationshipDTO>();
        //    using (var projectContext = new MyIdeaEntities())
        //    {
        //        var list = projectContext.ISARelationship.Where(x => x.TableDrivedEntityID1 == tableDrivedEntityID || x.TableDrivedEntityID2 == tableDrivedEntityID);
        //        foreach (var item in list)
        //        {
        //            result.Add(ToISARelationshipDTO(item));
        //        }
        //    }
        //    return result;
        //}
        private ISARelationshipDTO ToISARelationshipDTO(ISARelationship item)
        {
            ISARelationshipDTO result = new ISARelationshipDTO();

            result.Name                 = item.Name;
            result.ID                   = item.ID;
            result.IsGeneralization     = item.IsGeneralization == true;
            result.IsTolatParticipation = item.IsTolatParticipation;
            result.IsDisjoint           = item.IsDisjoint;
            result.SuperTypeEntities    = "";
            foreach (var superType in item.SuperToSubRelationshipType)
            {
                if (!result.SuperTypeEntities.Contains(superType.RelationshipType.Relationship.TableDrivedEntity.Name))
                {
                    result.SuperTypeEntities += (result.SuperTypeEntities == "" ? "" : ",") + superType.RelationshipType.Relationship.TableDrivedEntity.Name;
                }
            }
            result.SubTypeEntities = "";
            foreach (var subType in item.SubToSuperRelationshipType)
            {
                result.SubTypeEntities += (result.SubTypeEntities == "" ? "" : ",") + subType.RelationshipType.Relationship.TableDrivedEntity.Name;
            }
            return(result);
        }
 public void MergeISARelationships(string name, List <ISARelationshipDTO> relationships, ISARelationshipDTO selectedOne)
 {
     using (var projectContext = new MyIdeaEntities())
     {
         int isaRelationID = 0;
         foreach (var relationship in relationships)
         {
             //if (relationship == selectedOne)
             //    isaRelationID = relationship.ID;
             //else
             //{
             var dbRelationship = projectContext.ISARelationship.First(x => x.ID == relationship.ID);
             foreach (var detail in dbRelationship.SuperToSubRelationshipType)
             {
                 detail.ISARelationshipID = selectedOne.ID;
             }
             foreach (var detail in dbRelationship.SubToSuperRelationshipType)
             {
                 detail.ISARelationshipID = selectedOne.ID;
             }
             //}
         }
         projectContext.SaveChanges();
     }
 }