private void OnModelChangeConnectorAdded(ModelChangedEventArgs args) { IEAConnector connector = EAMain.Repository.GetConnectorByGUID(args.GUID); if (connector.ClientId != Decision.ID && connector.SupplierId != Decision.ID) { return; } if (EAMain.IsDecisionRelationship(connector)) { var related = new DecisionRelation(Decision, connector); if (EAMain.IsAlternativeRelationship(connector)) { Decision.Alternatives.Add(related); } else { Decision.RelatedDecisions.Add(related); } } else if (EAMain.IsTrace(connector)) { Decision.Traces.Add(new TraceLink(Decision, connector)); } else if (EAMain.IsStakeholderAction(connector)) { Decision.Stakeholders.Add(new StakeholderAction(Decision, connector)); } }
private void OnModelChangeConnectorRemoved(ModelChangedEventArgs args) { IEAConnector connector = EAMain.Repository.GetConnectorByGUID(args.GUID); if (EAMain.IsDecisionRelationship(connector)) { foreach (IDecisionRelation related in Decision.RelatedDecisions.ToArray()) { if (related.RelationGUID.Equals(args.GUID)) { Decision.RelatedDecisions.Remove(related); return; } } foreach (IDecisionRelation related in Decision.Alternatives.ToArray()) { if (related.RelationGUID.Equals(args.GUID)) { Decision.Alternatives.Remove(related); return; } } } else if (EAMain.IsTrace(connector)) { foreach (ITraceLink trace in Decision.Traces.ToArray()) { if (trace.ConnectorGUID.Equals(args.GUID)) { Decision.Traces.Remove(trace); return; } } } else if (EAMain.IsStakeholderAction(connector)) { foreach (IStakeholderAction action in Decision.Stakeholders.ToArray()) { if (action.ConnectorGUID.Equals(args.GUID)) { Decision.Stakeholders.Remove(action); return; } } } }