//Returns all connections which refer to the selcted elements either way private static List<XmlSbpmConnection> searchConnectionsForElement(XmlSbpmEntireModelSubject model, XmlSbpmModelingElement selectedObject) { List<XmlSbpmConnection> connFound = new List<XmlSbpmConnection>(); ; foreach (XmlSbpmConnection connection in model.Connection) { if (connection.endPoint2.UUID.Equals(selectedObject.UUID)) { connFound.Add(connection); } } return connFound; }
public static List<XmlSbpmModelingElement> getDirectSuccessor(XmlSbpmEntireModelSubject model, XmlSbpmModelingElement selectedObject) { List<XmlSbpmModelingElement> successingObjects = new List<XmlSbpmModelingElement>(); foreach (XmlSbpmModelingElement obj in model.Element) { if (obj.UUID.Equals(selectedObject.UUID)) { List<XmlSbpmConnection> connections = searchConnectionsForElement(model, selectedObject); successingObjects = findElementsUsedInConnections(model, connections, selectedObject); } } return successingObjects; }
private static List<XmlSbpmModelingElement> findElementsUsedInConnections(XmlSbpmEntireModelSubject model, List<XmlSbpmConnection> connections, XmlSbpmModelingElement selectedObject) { List<XmlSbpmModelingElement> elements = new List<XmlSbpmModelingElement>(); foreach (XmlSbpmConnection con in connections) { foreach (XmlSbpmModelingElement element in model.Element) { if (element.UUID.Equals(con.endPoint1.UUID) && !element.UUID.Equals(selectedObject.UUID) || element.UUID.Equals(con.endPoint2.UUID) && !element.UUID.Equals(selectedObject.UUID)) { elements.Add(element); } } } return elements; }
private static List<List<XmlSbpmEntireModelSubject>> replaceIdWithObjects(List<List<int>> differentSubjects, XmlSbpmEntireModelSubject[] subjects) { if (differentSubjects != null && subjects != null) { List<List<XmlSbpmEntireModelSubject>> modelList = new List<List<XmlSbpmEntireModelSubject>>(); foreach (List<int> list in differentSubjects) { List<XmlSbpmEntireModelSubject> tmpList = new List<XmlSbpmEntireModelSubject>(); foreach (int i in list) { XmlSbpmEntireModelSubject tmpSub = new XmlSbpmEntireModelSubject(); tmpSub = subjects[(i - 1)]; tmpList.Add(tmpSub); } modelList.Add(tmpList); } return modelList; } return null; }
public static List<List<XmlSbpmEntireModelSubject>> findCommonNameForSubjects(List<List<XmlSbpmEntireModelSubject>> subjectsModel) { List<XmlSbpmEntireModelSubject> commonNameSubjects = new List<XmlSbpmEntireModelSubject>(); List<List<XmlSbpmEntireModelSubject>> listCommonNameSubjects = new List<List<XmlSbpmEntireModelSubject>>(); List<string> oldNames = new List<string>(); foreach (List<XmlSbpmEntireModelSubject> list in subjectsModel) { if (list.Count > 1) { XmlSbpmEntireModelSubject mergedSubject = new XmlSbpmEntireModelSubject(); List<XmlSbpmConnection> connectionsList = new List<XmlSbpmConnection>(); List<XmlSbpmModelingElement> elementsList = new List<XmlSbpmModelingElement>(); string commonName = printSubjectsAndAskForCommonName(list); if (commonName != null) { if (commonName.Equals("")) { commonName = list[0].SubjectName; } foreach (XmlSbpmEntireModelSubject subject in list) { oldNames.Add(subject.SubjectName); if (subject.Connection != null) { foreach (XmlSbpmConnection con in subject.Connection) { connectionsList.Add(con); } } if (subject.Element != null) { foreach (XmlSbpmModelingElement element in subject.Element) { elementsList.Add(element); } } } } mergedSubject.SubjectName = commonName; mergedSubject.RealName = commonName; mergedSubject.Connection = connectionsList.ToArray(); mergedSubject.Element = elementsList.ToArray(); commonNameSubjects.Add(mergedSubject); listCommonNameSubjects.Add(commonNameSubjects); listCommonNameSubjects = replaceOldNamesWithCommonName(listCommonNameSubjects, oldNames, commonName); } else { listCommonNameSubjects.Add(list); } } return listCommonNameSubjects; }