/// <summary> /// Called on a role player changing. /// </summary> /// <param name="args">Arguments.</param> protected virtual void OnModelContextChanged(RolePlayerChangedEventArgs args) { ExternModelContextReferencesModelContext con = args.ElementLink as ExternModelContextReferencesModelContext; if (con != null) { if (args.DomainRole.Id == ExternModelContextReferencesModelContext.ExternModelContextDomainRoleId) { if (args.OldRolePlayerId == this.ModelContext.Id) { DeleteModelContext(con.ModelContext); } if (args.NewRolePlayerId == this.ModelContext.Id) { AddModelContext(con.ModelContext); } } else if (args.DomainRole.Id == ExternModelContextReferencesModelContext.ModelContextDomainRoleId) { if (args.OldRolePlayer != null) { DeleteModelContext(args.OldRolePlayer as LibraryModelContext); } if (args.NewRolePlayer != null) { AddModelContext(args.NewRolePlayer as LibraryModelContext); } } } }
/// <summary> /// Called whenever a relationship of type ExternModelContextReferencesModelContext is deleted and /// the element hosted by this model is the source. /// </summary> /// <param name="args">Arguments.</param> protected virtual void OnModelContextRemoved(ElementDeletedEventArgs args) { ExternModelContextReferencesModelContext con = args.ModelElement as ExternModelContextReferencesModelContext; if (con != null) { DeleteModelContext(con.ModelContext); } }