Esempio n. 1
0
        // Загрузка связи с процедурами
        private ProcConnectionWPF LoadProcConnection(SaveProcedureConnection connectproc, Dictionary <Guid, ProcedureWPF> worksavelistproc, StartBlockWPF startBlock, EndBlockWPF endBlock)
        {
            ProcedureWPF procStart = null;
            ProcedureWPF procEnd   = null;

            if (connectproc.StartID.CompareTo(new Guid()) != 0)
            {
                procStart = worksavelistproc[connectproc.StartID];
            }

            if (connectproc.EndID.CompareTo(new Guid()) != 0)
            {
                procEnd = worksavelistproc[connectproc.EndID];
            }

            ProcConnectionWPF connection = null;

            if (procStart != null && procEnd != null)
            {
                connection = new ProcConnectionWPF(procStart, procEnd, connectproc.RelativeStartPosition, connectproc.RelativeEndPosition, connectproc.StartPort, connectproc.EndPort);

                procStart.AddOutPutConnection(connection);
                procEnd.AddInPutConnection(connection);
            }
            else
            {
                if (procStart == null)
                {
                    connection = new ProcConnectionWPF(startBlock, procEnd, connectproc.RelativeStartPosition, connectproc.RelativeEndPosition, connectproc.StartPort, connectproc.EndPort);
                    procEnd.AddInPutConnection(connection);
                    startBlock.AddOutPutConnection(connection);
                }

                if (procEnd == null)
                {
                    connection = new ProcConnectionWPF(procStart, endBlock, connectproc.RelativeStartPosition, connectproc.RelativeEndPosition, connectproc.StartPort, connectproc.EndPort);
                    procStart.AddOutPutConnection(connection);
                    endBlock.AddInPutConnection(connection);
                }
            }

            return(connection);
        }
Esempio n. 2
0
        /// <summary>
        /// Производит сохранение информации о связи с процедурами
        /// </summary>
        /// <param name="element"></param>
        /// <param name="processes"></param>
        /// <param name="saveProcess"></param>
        private void SaveProcConnection(UIElement element, Dictionary <ProcedureWPF, Guid> procedures, SaveProcess saveProcess)
        {
            var connection = element as ProcConnectionWPF;                           // Достаём информацию о связи

            BlockWPF Start = connection.StartBlock;                                  // Информация о начальном блоке в связи
            BlockWPF End   = connection.EndBlock;                                    // Информация о конечном блоке в связи

            var StartProcedure = SaveBlockProcedure(Start, procedures, saveProcess); // Сохраняем информацию о начальной процедуре
            var EndProcedure   = SaveBlockProcedure(End, procedures, saveProcess);   // Сохраняем информацию о конецной процедуре

            // Формируем информацию о связи
            SaveProcedureConnection connect = new SaveProcedureConnection()
            {
                StartID               = StartProcedure.Id,
                EndID                 = EndProcedure.Id,
                StartPort             = connection.StartPort,
                EndPort               = connection.EndPort,
                RelativeStartPosition = connection.RelateStart,
                RelativeEndPosition   = connection.RelateEnd
            };

            // Сохраняем информацию
            saveProcess.ProcedureConnectonList.Add(connect);
        }