internal Inheritance_AddFromDialog(NewInheritanceDialog dialog)
 {
     _dialog = dialog;
 }
        internal void AddNewInheritance(EntityTypeShape entityShape)
        {
            if ((Partition.GetLocks() & Locks.Add) == Locks.Add)
            {
                return;
            }

            // If user selected an EntityTypeShape, use corresponding EntityType
            // else default to first EntityType in the model
            ViewModelEntityType baseEntity = null;
            ConceptualEntityType modelEntity = null;
            if (entityShape != null)
            {
                baseEntity = entityShape.ModelElement as ViewModelEntityType;
                modelEntity = ModelElement.ModelXRef.GetExisting(baseEntity) as ConceptualEntityType;
                Debug.Assert(modelEntity != null);
            }

            var model = ModelElement.ModelXRef.GetExisting(ModelElement) as ConceptualEntityModel;
            Debug.Assert(model != null);

            var cets = new List<ConceptualEntityType>(model.EntityTypes().Cast<ConceptualEntityType>());

            using (var dialog = new NewInheritanceDialog(modelEntity, cets))
            {
                if (dialog.ShowDialog() == DialogResult.OK)
                {
                    using (var t = Store.TransactionManager.BeginTransaction(EntityDesignerResources.Tx_AddInheritance))
                    {
                        t.Context.Add(EfiTransactionOriginator.TransactionOriginatorDiagramId, DiagramId);
                        ViewModelChangeContext.GetNewOrExistingContext(t).ViewModelChanges.Add(new Inheritance_AddFromDialog(dialog));
                        t.Commit();
                    }
                }
            }
        }