private void tsbShow_Click(object sender, EventArgs e)
        {
            // Сначала запрашиваем стиль и пообще не передумали ли мы
            ExecResult <SetLinkStyle> setLinkStyleResult = new FLinkStyle().Execute();

            if (setLinkStyleResult.code != 0)
            {
                return;
            }

            // Проходимся по списку выделенных коннекторов
            foreach (ListViewItem item in lvConnectors.SelectedItems)
            {
                ConnectorData connectorData = (ConnectorData)item.Tag;

                EA.DiagramLink diagramLink = DiagramLinkHelper.GetDLFromConnector(connectorData.ConnectorID);
                if (diagramLink == null)
                {
                    diagramLink = DiagramLinkHelper.CreateDiagramLink(connectorData.Connector);
                }

                DiagramLinkHelper.SetDiagramLinkVisibility(diagramLink, true); // устанавливаем видимость
                item.Text = (!diagramLink.IsHidden).ToString();

                if (setLinkStyleResult.value.DoSetLinkStyle) // устанавливаем стиль линий
                {
                    DiagramLinkHelper.ApplyStyleToDL(diagramLink, setLinkStyleResult.value);
                }
            }
        }
示例#2
0
        /// <summary>
        /// Ищет на текущей диаграмме коннекторы для элементов, которые принадлежат к перечисленному ПО
        /// </summary>
        /// <param name=""></param>
        /// <returns></returns>
        public static List <ConnectorData> GetDAForSoftwareOnDiagram(List <string> selectedSoftware)
        {
            List <ConnectorData> result = new List <ConnectorData>();

            foreach (EA.DiagramObject diagramObject in CurrentDiagram.DiagramObjects)
            {
                EA.Element element         = EARepository.GetElementByID(diagramObject.ElementID);
                string     elementSoftware = LibraryHelper.GetElementSoftwareName(element);

                if (selectedSoftware.Contains(elementSoftware))
                {
                    foreach (EA.Connector connector in element.Connectors)
                    {
                        EA.DiagramLink diagramLink = DiagramLinkHelper.GetDLFromConnector(connector.ConnectorID);
                        if (diagramLink != null)
                        {
                            ConnectorData connectorData = new ConnectorData(connector);
                            result.Add(connectorData);
                        }
                    }
                }
            }



            return(result);
        }
示例#3
0
        /// <summary>
        /// Функция загружает список коннекторов из текущей библиотеки (используя SQL - запрос)
        /// </summary>
        /// <returns></returns>
        public static Dictionary <int, ConnectorData> LoadConnectorData2()
        {
            var result = new Dictionary <int, ConnectorData>();

            string[]  args         = new string[] { String.Join(",", Context.CurLibPackageIDs) };
            XDocument sqlResultSet = SQLHelper.RunSQL("GetConnectors.sql", args);

            // Коннекторы
            IEnumerable <XElement> rowNodes = sqlResultSet.Root.XPathSelectElements("/EADATA/Dataset_0/Data/Row");

            foreach (XElement rowNode in rowNodes)
            {
                ConnectorData connectorData = new ConnectorData();
                connectorData.ConnectorID     = int.Parse(rowNode.Descendants("connector_id").First().Value);
                connectorData.Name            = rowNode.Descendants("name").First().Value;
                connectorData.Notes           = rowNode.Descendants("notes").First().Value;
                connectorData.SourceElementID = int.Parse(rowNode.Descendants("start_object_id").First().Value);
                connectorData.TargetElementID = int.Parse(rowNode.Descendants("end_object_id").First().Value);

                result.Add(connectorData.ConnectorID, connectorData);
            }

            // Тэги коннекторов
            sqlResultSet = SQLHelper.RunSQL("GetConnectorsTags.sql", args);
            rowNodes     = sqlResultSet.Root.XPathSelectElements("/EADATA/Dataset_0/Data/Row");
            foreach (XElement rowNode in rowNodes)
            {
                int    elementID = int.Parse(rowNode.Descendants("elementid").First().Value);
                string property  = rowNode.Descendants("property").First().Value;
                string value     = rowNode.Descendants("value").First().Value;

                if (result.ContainsKey(elementID))
                {
                    ConnectorData connectorData = result[elementID]; // получаем уже созданный объект ConnectorData

                    if (property == DAConst.DP_LibraryTag)
                    {
                        connectorData.IsLibrary = true;
                    }
                    if (property == DAConst.DP_LinkTypeTag)
                    {
                        connectorData.LinkType = (LinkType)Enum.Parse(typeof(LinkType), value);
                    }
                    if (property == DAConst.DP_FlowIDTag)
                    {
                        connectorData.FlowID = value;
                    }
                    if (property == DAConst.DP_SegmentIDTag)
                    {
                        connectorData.SegmentID = value;
                    }
                }
                else
                {
                    throw new Exception("рассогласование набора коннекторов при загрузке");
                }
            }

            return(result);
        }
示例#4
0
        /// <summary>
        /// Creates a new NodeGraphConnector, given a name, a parent container, type and index
        /// </summary>
        /// <param name="newName">The display name of the connector</param>
        /// <param name="newParent">Reference to the parent NodeGraphNode</param>
        /// <param name="newConnectorType">Type of the connector (input/output)</param>
        /// <param name="newConnectorIndex">Connector Index</param>
        public Connector(string newName, Node newParent, ConnectorType newConnectorType, int newConnectorIndex)
        {
            // Try Setting Connector Data Correct
            ConnectorData newConnectorData = ConnectorData.None;

            bool success = Enum.TryParse(newName, out newConnectorData);

            if (!success)
            {
                Console.WriteLine($"## ERROR:\t\tCasting {newName} to Enum failed");
            }

            this.color = new Vector4(0, 0, 0, 1);

            this.Name   = newName;
            this.Parent = newParent;
            this.Type   = newConnectorType;
            this.Data   = newConnectorData;
            this.Index  = newConnectorIndex;

            this.scale = newParent.Tex_Scale;

            this.pen   = new Pen(Util.VectorToColor(this.color), 1.0f);
            this.font  = new Font(this.Parent.View.Font_Node_Connector.Name, this.Parent.View.Font_Node_Connector.Size * this.scale);
            this.brush = new SolidBrush(Util.VectorToColor(this.color));
        }
 private void tsbSelectConnector_Click(object sender, EventArgs e)
 {
     foreach (ListViewItem item in lvConnectors.SelectedItems)
     {
         ConnectorData connectorData = (ConnectorData)item.Tag;
         Context.CurrentDiagram.SelectedConnector = Context.EARepository.GetConnectorByID(connectorData.ConnectorID);
         break;
     }
 }
        public static ExecResult <ConnectorData> Execute(ConnectorData connectorData)
        {
            var result = new ExecResult <ConnectorData>();

            try
            {
                var form = new FEditConnector();

                form.tbID.Text            = connectorData.ConnectorID.ToString();
                form.tbGUID.Text          = connectorData.Connector.ConnectorGUID;
                form.tbName.Text          = connectorData.Name;
                form.cbType.SelectedIndex = form.cbType.SelectedIndex = form.cbType.Items.IndexOf(connectorData.LinkType);
                form.tbClientID.Text      = connectorData.SourceElementID.ToString() + " (" + Context.ElementData[connectorData.SourceElementID].DisplayName + ")";
                form.tbClientID.Tag       = connectorData.SourceElementID;
                form.tbSupplierID.Text    = connectorData.TargetElementID.ToString() + " (" + Context.ElementData[connectorData.TargetElementID].DisplayName + ")";
                form.tbSupplierID.Tag     = connectorData.TargetElementID;
                form.cbFlowID.Text        = connectorData.FlowID;
                form.cbSegmentID.Text     = connectorData.SegmentID;
                form.tbNotes.Text         = connectorData.Notes;

                form.lvTaggedValues.Items.Clear();
                foreach (EA.ConnectorTag connectorTag in connectorData.Connector.TaggedValues)
                {
                    ListViewItem item = new ListViewItem(connectorTag.Name);
                    item.SubItems.Add(connectorTag.Value);
                    form.lvTaggedValues.Items.Add(item);
                }


                DialogResult res = form.ShowDialog();
                if (res != DialogResult.OK)
                {
                    result.code = (int)res;
                }
                else
                {
                    result.value = new ConnectorData();

                    result.value.ConnectorID     = int.Parse(form.tbID.Text);
                    result.value.Name            = form.tbName.Text;
                    result.value.IsLibrary       = true;
                    result.value.LinkType        = (LinkType)Enum.Parse(typeof(LinkType), form.cbType.Text);
                    result.value.SourceElementID = (int)form.tbClientID.Tag;
                    result.value.TargetElementID = (int)form.tbSupplierID.Tag;
                    result.value.FlowID          = form.cbFlowID.Text;
                    result.value.SegmentID       = form.cbSegmentID.Text;
                    result.value.Notes           = form.tbNotes.Text;
                }
            }
            catch (Exception ex)
            {
                result.setException(ex);
            }

            return(result);
        }
        private void tsbShowEndInProject_Click(object sender, EventArgs e)
        {
            foreach (ListViewItem item in lvConnectors.SelectedItems)
            {
                ConnectorData connectorData = (ConnectorData)item.Tag;
                EA.Element    targetElement = Context.EARepository.GetElementByID(connectorData.TargetElementID);

                Context.EARepository.ShowInProjectView(targetElement);

                break;
            }
        }
        private void btnSelectConnectorObjects_Click(object sender, EventArgs e)
        {
            while (Context.CurrentDiagram.SelectedObjects.Count > 0)
            {
                Context.CurrentDiagram.SelectedObjects.Delete(0);
            }

            foreach (ListViewItem item in lvConnectors.SelectedItems)
            {
                ConnectorData connectorData = (ConnectorData)item.Tag;
                //EA.DiagramObject sourceDiagramObject = Context.CurrentDiagram.GetDiagramObjectByID(connectorData.SourceElementID);
                Context.CurrentDiagram.SelectedObjects.AddNew(connectorData.SourceElementID.ToString(), "");
                Context.CurrentDiagram.SelectedObjects.AddNew(connectorData.TargetElementID.ToString(), "");
            }
        }
        private void tsbHide_Click(object sender, EventArgs e)
        {
            // Проходимся по списку выделенных коннекторов
            foreach (ListViewItem item in lvConnectors.SelectedItems)
            {
                ConnectorData connectorData = (ConnectorData)item.Tag;

                EA.DiagramLink diagramLink = DiagramLinkHelper.GetDLFromConnector(connectorData.ConnectorID);
                if (diagramLink == null)
                {
                    diagramLink = DiagramLinkHelper.CreateDiagramLink(connectorData.Connector);
                }

                DiagramLinkHelper.SetDiagramLinkVisibility(diagramLink, false); // устанавливаем видимость
                item.Text = (!diagramLink.IsHidden).ToString();
            }
        }
        private void LoadConnectorList()
        {
            // получаем список описателей элементов диаграммы
            Dictionary <int, ElementData> elementDataList = EAHelper.GetCurDiagramElementData();

            // получаем список коннекторов диаграммы
            Dictionary <int, bool> curDiagramConnectorsID = EAHelper.GetCurDiagramConnectorsID();


            // заливаем список коннекторов на форму
            lvConnectors.Items.Clear();
            foreach (int curConnectorID in curDiagramConnectorsID.Keys)
            {
                ConnectorData connectorData;
                if (Context.ConnectorData.ContainsKey(curConnectorID))
                {
                    connectorData = Context.ConnectorData[curConnectorID];
                }
                else // небиблиотечный коннектор, его нет в списке
                {
                    EA.Connector connector = Context.EARepository.GetConnectorByID(curConnectorID);
                    connectorData = new ConnectorData(connector);
                }

                if (!AllowByFilter(connectorData))
                {
                    continue;                                // Проверяем, что показ этого коннектора в списке разрешён фильтрами
                }
                // Создаём ListViewItem
                ListViewItem item = new ListViewItem();
                item.Tag  = connectorData;
                item.Text = (!curDiagramConnectorsID[curConnectorID]).ToString();

                item.SubItems.Add(elementDataList[connectorData.SourceElementID].DisplayName);
                item.SubItems.Add(connectorData.NameForShow());
                item.SubItems.Add(connectorData.IsLibrary ? connectorData.LinkType.ToString() : "");
                item.SubItems.Add(connectorData.IsLibrary ? connectorData.FlowID : "");
                item.SubItems.Add(connectorData.IsLibrary ? connectorData.SegmentID : "");
                item.SubItems.Add(connectorData.Notes);
                item.SubItems.Add(elementDataList[connectorData.TargetElementID].DisplayName);

                lvConnectors.Items.Add(item);
            }
        }
        public async Task <IActionResult> AttachConnector([FromBody] ConnectorData connectorData)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            Connector connector = new Connector()
            {
                NetworkName = connectorData.NetworkName,
                Url         = connectorData.Url
            };

            _context.Connectors.Add(connector);

            await _context.SaveChangesAsync();

            return(Ok());
        }
示例#12
0
        /// <summary>
        /// Функция обновляет данные коннектора пор данным переданного ConnectorData
        /// </summary>
        /// <param name="connectorData"></param>
        public static void UpdateConnectorByData(ConnectorData connectorData)
        {
            EA.Connector connector = connectorData.Connector;

            connector.Name       = connectorData.Name;
            connector.Notes      = connectorData.Notes;
            connector.ClientID   = connectorData.SourceElementID;
            connector.SupplierID = connectorData.TargetElementID;
            connector.Update();

            if (connectorData.IsLibrary)
            {
                EATVHelper.TaggedValueSet(connector, DAConst.DP_LibraryTag, "");
                EATVHelper.TaggedValueSet(connector, DAConst.DP_LinkTypeTag, connectorData.LinkType.ToString());
                EATVHelper.TaggedValueSet(connector, DAConst.DP_FlowIDTag, connectorData.FlowID);
                EATVHelper.TaggedValueSet(connector, DAConst.DP_SegmentIDTag, connectorData.SegmentID);
            }

            Context.ConnectorData[connectorData.ConnectorID] = connectorData;
        }
示例#13
0
        /// <summary>
        /// Возвращает список коннекторов для элементов текущей диаграммы
        /// </summary>
        /// <returns></returns>
        public static List <ConnectorData> GetCurDiagramConnectors()
        {
            List <ConnectorData> result = new List <ConnectorData>();

            string[]  args         = new string[] { Context.CurrentDiagram.DiagramGUID };
            XDocument sqlResultSet = SQLHelper.RunSQL("CurDiagramConnectorsID.sql", args);

            IEnumerable <XElement> rowNodes = sqlResultSet.Root.XPathSelectElements("/EADATA/Dataset_0/Data/Row");

            foreach (XElement rowNode in rowNodes)
            {
                int  connector_id = int.Parse(rowNode.Descendants("connector_id").First().Value);
                bool hidden       = bool.Parse(rowNode.Descendants("hidden").First().Value);

                if (!hidden)
                {
                    ConnectorData connectorData = Context.ConnectorData[connector_id];
                    result.Add(connectorData);
                }
            }

            return(result);
        }
示例#14
0
        public static void Execute(ConnectorData connectorData)
        {
            var form = new FConnectorProperties();

            EA.Connector connector = Context.EARepository.GetConnectorByID(connectorData.ConnectorID);

            form.tbID.Text         = connector.ConnectorID.ToString();
            form.tbGUID.Text       = connector.ConnectorGUID;
            form.tbName.Text       = connector.Name;
            form.tbType.Text       = connector.Type;
            form.tbClientID.Text   = connector.ClientID.ToString();
            form.tbSupplierID.Text = connector.SupplierID.ToString();
            form.tbNotes.Text      = connector.Notes;

            form.lvTaggedValues.Items.Clear();
            foreach (EA.ConnectorTag connectorTag in connector.TaggedValues)
            {
                ListViewItem item = new ListViewItem(connectorTag.Name);
                item.SubItems.Add(connectorTag.Value);
                form.lvTaggedValues.Items.Add(item);
            }

            form.ShowDialog();
        }
示例#15
0
        /// <summary>
        /// Creates a new NodeGraphConnector, given a name, a parent container, type and index
        /// </summary>
        /// <param name="newName">The display name of the connector</param>
        /// <param name="newParent">Reference to the parent NodeGraphNode</param>
        /// <param name="newConnectorType">Type of the connector (input/output)</param>
        /// <param name="newConnectorIndex">Connector Index</param>
        public Connector(string newName, Node newParent, ConnectorType newConnectorType, ConnectorData newConnectorData, int newConnectorIndex)
        {
            this.color = new Vector4(0, 0, 0, 1);

            this.Name   = newName;
            this.Parent = newParent;
            this.Type   = newConnectorType;
            this.Data   = newConnectorData;
            this.Index  = newConnectorIndex;

            this.scale = newParent.Tex_Scale;

            this.pen   = new Pen(Util.VectorToColor(this.color), 1.0f);
            this.font  = new Font(this.Parent.View.Font_Node_Connector.Name, this.Parent.View.Font_Node_Connector.Size * this.scale);
            this.brush = new SolidBrush(Util.VectorToColor(this.color));
        }
        public static ExecResult <List <ConnectorData> > Execute(List <ConnectorData> connectorDataList)
        {
            var result = new ExecResult <List <ConnectorData> >();

            try
            {
                var form = new FEditConnectors();

                // Список коннекторов
                form.lvConnectors.Items.Clear();
                foreach (var connectorData in connectorDataList)
                {
                    ListViewItem item = new ListViewItem(connectorData.ConnectorID.ToString());
                    item.SubItems.Add(connectorData.Name);
                    form.lvConnectors.Items.Add(item);
                }

                // Имена в комбобокс
                form.cbName.Items.Clear();
                form.cbName.Items.AddRange(connectorDataList.Select(cd => cd.Name).ToArray());

                // linkType и FlowID
                form.cbType.SelectedIndex = form.cbType.SelectedIndex = form.cbType.Items.IndexOf(connectorDataList[0].LinkType);
                form.cbFlowID.Text        = connectorDataList[0].FlowID;
                //form.cbSegmentID.Text = connectorDataList[0].SegmentID; Идентификатор сегмента массово не редактируем

                form.lvTaggedValues.Items.Clear();
                foreach (var connectorData in connectorDataList)
                {
                    foreach (EA.ConnectorTag connectorTag in connectorData.Connector.TaggedValues)
                    {
                        ListViewItem item = new ListViewItem(connectorData.ConnectorID.ToString());
                        item.SubItems.Add(connectorTag.Name);
                        item.SubItems.Add(connectorTag.Value);
                        form.lvTaggedValues.Items.Add(item);
                    }
                }

                DialogResult res = form.ShowDialog();
                if (res != DialogResult.OK)
                {
                    result.code = (int)res;
                }
                else
                {
                    result.value = new List <ConnectorData>();

                    foreach (var connectorData in connectorDataList)
                    {
                        ConnectorData newConnectorData = new ConnectorData();

                        newConnectorData.ConnectorID = connectorData.ConnectorID;
                        if (form.cbName.Text == "")
                        {
                            newConnectorData.Name = connectorData.Name;
                        }
                        else
                        {
                            newConnectorData.Name = form.cbName.Text;
                        }
                        newConnectorData.IsLibrary = true;
                        if (form.cbType.SelectedIndex == 0) // не усатновленные поля не записываются, берутся из старых объектов
                        {
                            newConnectorData.LinkType = connectorData.LinkType;
                        }
                        else
                        {
                            newConnectorData.LinkType = (LinkType)Enum.Parse(typeof(LinkType), form.cbType.Text);
                        }
                        newConnectorData.SourceElementID = connectorData.SourceElementID;
                        newConnectorData.TargetElementID = connectorData.TargetElementID;
                        if (form.cbFlowID.Text == "")
                        {
                            newConnectorData.FlowID = connectorData.FlowID;
                        }
                        else
                        {
                            newConnectorData.FlowID = form.cbFlowID.Text;
                        }
                        if (form.cbSegmentID.Text == "")
                        {
                            newConnectorData.SegmentID = connectorData.SegmentID;
                        }
                        else
                        {
                            newConnectorData.SegmentID = form.cbSegmentID.Text;
                        }
                        newConnectorData.Notes = connectorData.Notes;

                        result.value.Add(newConnectorData);
                    }
                }
            }
            catch (Exception ex)
            {
                result.setException(ex);
            }

            return(result);
        }
示例#17
0
        public static EA.Connector CreateConnector(ConnectorData createNewLinkData, bool putOnDiagram = true)
        {
            EA.Connector newConnector = null;

            EA.Element firstElement  = EARepository.GetElementByID(createNewLinkData.SourceElementID);
            EA.Element secondElement = EARepository.GetElementByID(createNewLinkData.TargetElementID);

            // Определяем тип создаваемого коннектора
            string creatingConnectorType;

            switch (createNewLinkData.LinkType)
            {
            case LinkType.Communication:
            case LinkType.Deploy:
                creatingConnectorType = "Dependency";
                break;

            case LinkType.InformationFlow:
                creatingConnectorType = "InformationFlow";
                break;

            case LinkType.SoftwareClassification:
                creatingConnectorType = "Generalization";
                break;

            default:
                throw new Exception("Непредусмотренный тип коннектора при создании");
            }

            // Создаём
            newConnector = firstElement.Connectors.AddNew("", creatingConnectorType);

            if (createNewLinkData.LinkType == LinkType.InformationFlow || createNewLinkData.LinkType == LinkType.Deploy)
            {
                newConnector.Direction = "Source -> Destination";
            }
            else
            {
                newConnector.Direction = "Unspecified";
            }
            newConnector.ClientID   = firstElement.ElementID;
            newConnector.SupplierID = secondElement.ElementID;

            newConnector.Name  = createNewLinkData.Name;
            newConnector.Notes = createNewLinkData.Notes;

            newConnector.Update();

            EATVHelper.TaggedValueSet(newConnector, DAConst.DP_LibraryTag, "");
            EATVHelper.TaggedValueSet(newConnector, DAConst.DP_LinkTypeTag, Enum.GetName(typeof(LinkType), createNewLinkData.LinkType));
            EATVHelper.TaggedValueSet(newConnector, DAConst.DP_FlowIDTag, createNewLinkData.FlowID);
            EATVHelper.TaggedValueSet(newConnector, DAConst.DP_SegmentIDTag, createNewLinkData.SegmentID);
            //EAHelper.TaggedValueSet(newConnector, DAConst.DP_TempLinkTag, createNewLinkData.tempLink.ToString());
            //EAHelper.TaggedValueSet(newConnector, DAConst.DP_TempLinkDiagramIDTag, createNewLinkData.tempLink ? createNewLinkData.tempLinkDiagramID : "");


            newConnector.Update();
            newConnector.TaggedValues.Refresh();

            // Добавляем коннектор к кэш информации о коннекторах
            createNewLinkData.ConnectorID = newConnector.ConnectorID;
            Context.ConnectorData.Add(createNewLinkData.ConnectorID, createNewLinkData);

            if (putOnDiagram)
            {
                // Помещаем на диаграмму
                EA.DiagramLink diagramLink = DiagramLinkHelper.CreateDiagramLink(newConnector);
            }

            return(newConnector);
        }
        /// <summary>
        /// Функция проверяет, разрешён ли показ коннекторат текущим фильтром
        /// </summary>
        private bool AllowByFilter(ConnectorData connectorData)
        {
            bool result = true;

            if (lblFlowIDFilter.Tag != null && ((string[])lblFlowIDFilter.Tag).Length > 0)
            {
                if (!((string[])lblFlowIDFilter.Tag).Contains(connectorData.FlowID))
                {
                    return(false);
                }
            }

            if (lblSourceElementFilter.Tag != null && ((int[])lblSourceElementFilter.Tag).Length != 0)
            {
                if (!(
                        ((int[])lblSourceElementFilter.Tag).Contains(connectorData.SourceElementID)
                        ||
                        ((int[])lblSourceElementFilter.Tag).Contains(connectorData.TargetElementID)
                        )
                    )
                {
                    return(false);
                }
            }

            if (lblLinkTypeFilter.Tag != null && ((LinkType[])lblLinkTypeFilter.Tag).Length != 0)
            {
                if (!((LinkType[])lblLinkTypeFilter.Tag).Contains(connectorData.LinkType))
                {
                    return(false);
                }
            }

            if (lblSoftwareClassificationFilter1.Tag != null && ((int[])lblSoftwareClassificationFilter1.Tag).Length != 0)
            {
                bool belongsToSoftware = false;
                foreach (int softwareID in (int[])lblSoftwareClassificationFilter1.Tag)
                {
                    ElementData softwareElementData = Context.SoftwareClassification.AllNodes[softwareID].Value;

                    ElementData sourceElementData = Context.ElementData[connectorData.SourceElementID];
                    if (SoftwareClassificationHelper.ISBelongsToSoftware(sourceElementData, softwareElementData))
                    {
                        belongsToSoftware = true;
                        break;
                    }
                    ElementData targetElementData = Context.ElementData[connectorData.TargetElementID];
                    if (SoftwareClassificationHelper.ISBelongsToSoftware(targetElementData, softwareElementData))
                    {
                        belongsToSoftware = true;
                        break;
                    }
                }

                if (!belongsToSoftware)
                {
                    return(false);
                }
            }



            return(result);
        }