public virtual void AddNewElement(ContextMenuCreationHelper cHelper) { DomainRoleInfo info = cHelper.RoleInfo; using (Transaction transaction = this.Store.TransactionManager.BeginTransaction("Create new element")) { ModelElement modelElement = this.Store.ElementFactory.CreateElement(cHelper.RolePlayerInfo.Id); // create and assign name to the element if it has a property marked as "IsElementName" if ((modelElement as IDomainModelOwnable).DomainElementHasName) { (modelElement as IDomainModelOwnable).GetDomainModelServices().ElementNameProvider.CreateAndAssignName(this.Element, modelElement); } RoleAssignment[] roleAssignments = new RoleAssignment[2]; roleAssignments[0] = new RoleAssignment(info.Id, this.Element); roleAssignments[1] = new RoleAssignment(info.OppositeDomainRole.Id, modelElement); this.Store.ElementFactory.CreateElementLink(info.DomainRelationship, roleAssignments); transaction.Commit(); } }
public virtual void AddNewElement(ContextMenuCreationHelper cHelper) { DomainRoleInfo info = cHelper.RoleInfo; using (Transaction transaction = this.Store.TransactionManager.BeginTransaction("Create new element")) { ModelElement modelElement = this.Store.ElementFactory.CreateElement(cHelper.RolePlayerInfo.Id); // create and assign name to the element if it has a property marked as "IsElementName" if ( (modelElement as IDomainModelOwnable).DomainElementHasName ) (modelElement as IDomainModelOwnable).GetDomainModelServices().ElementNameProvider.CreateAndAssignName(this.Element, modelElement); RoleAssignment[] roleAssignments = new RoleAssignment[2]; roleAssignments[0] = new RoleAssignment(info.Id, this.Element); roleAssignments[1] = new RoleAssignment(info.OppositeDomainRole.Id, modelElement); this.Store.ElementFactory.CreateElementLink(info.DomainRelationship, roleAssignments); transaction.Commit(); } }