예제 #1
0
        /// <summary>
        /// Удалить нить производства
        /// </summary>
        /// <param name="name">Наименование нити</param>
        /// <param name="cascade">Удалить также все элементы нити</param>
        /// <returns></returns>
        public void DeleteProductionThreadByNumber(int threadNumber)
        {
            foreach (ThreadUnit thread in ListThreadUnits)
            {
                if (thread.ThreadNumber == threadNumber)
                {
                    // Обходим список объектов, которые могут находиться на нити.
                    // и удаляем объекты, принадлежащие удаляемой нити

                    // Обходим список объектов Рольганг
                    for (int i = 0; i < ListRollgangUnits.GetItemsCount(); i++)
                    {
                        RollgangUnit rollgang = ListRollgangUnits[i];
                        if (rollgang.ThreadNumber == threadNumber)
                        {
                            ListRollgangUnits.RemoveItem(i);
                        }
                    }

                    // Обходим список объектов Метка
                    for (int i = 0; i < ListLabelUnits.GetItemsCount(); i++)
                    {
                        LabelUnit label = ListLabelUnits[i];
                        if (label.ThreadNumber == threadNumber)
                        {
                            ListLabelUnits.RemoveItem(i);
                        }
                    }

                    // Обходим список объектов Датчик
                    for (int i = 0; i < ListSensorUnits.GetItemsCount(); i++)
                    {
                        SensorUnit sensor = ListSensorUnits[i];
                        if (sensor.ThreadNumber == threadNumber)
                        {
                            ListSensorUnits.RemoveItem(i);
                        }
                    }

                    // Обходим список объектов Упор
                    for (int i = 0; i < ListStopperUnits.GetItemsCount(); i++)
                    {
                        StopperUnit stopper = ListStopperUnits[i];
                        if (stopper.ThreadNumber == threadNumber)
                        {
                            ListStopperUnits.RemoveItem(i);
                        }
                    }

                    // Обходим список объектов АгрегатЛинейногоПеремещения
                    for (int i = 0; i < ListLinearDisplacementUnits.GetItemsCount(); i++)
                    {
                        LinearDisplacementUnit linear = ListLinearDisplacementUnits[i];
                        if (linear.ThreadNumber == threadNumber)
                        {
                            ListLinearDisplacementUnits.RemoveItem(i);
                        }
                    }

                    // Обходим список объектов УдалениеЗастрявших
                    for (int i = 0; i < ListDeleterUnits.GetItemsCount(); i++)
                    {
                        DeleterUnit deleter = ListDeleterUnits[i];
                        if (deleter.ThreadNumber == threadNumber)
                        {
                            ListDeleterUnits.RemoveItem(i);
                        }
                    }

                    // Обходим список объектов Клеть
                    for (int i = 0; i < ListCagesUnits.GetItemsCount(); i++)
                    {
                        CageUnit cage = ListCagesUnits[i];
                        if (cage.ThreadNumber == threadNumber)
                        {
                            ListCagesUnits.RemoveItem(i);
                        }
                    }

                    // Обходим список объектов ТехУзел
                    for (int i = 0; i < ListTechnicalUnits.GetItemsCount(); i++)
                    {
                        TechnicalUnit tech = ListTechnicalUnits[i];
                        if (tech.ThreadNumber == threadNumber)
                        {
                            ListTechnicalUnits.RemoveItem(i);
                        }
                    }
                }
            }
        }
예제 #2
0
        /// <summary>
        /// Удалить линию производства по имени
        /// </summary>
        /// <param name="name">Имя линии производства</param>
        /// <returns></returns>
        public void DeleteProductionThreadByName(string name)
        {
            int threadNumber = 0;

            FillProductionThreads();

            // Находим номер удаляемой нити
            foreach (ThreadUnit thread in ListThreadUnits)
            {
                if (thread.Name == name)
                {
                    threadNumber = thread.ThreadNumber;
                    break;
                }
            }

            foreach (ProductionThread productionThread in _listProductionThreads)
            {
                if (productionThread.Name == name)
                {
                    // Обходим список объектов, которые могут находиться на нити.
                    // и удаляем объекты, принадлежащие удаляемой нити

                    // Обходим список объектов Рольганг
                    for (int i = 0; i < ListRollgangUnits.GetItemsCount(); i++)
                    {
                        if (ListRollgangUnits[i].ThreadNumber == threadNumber)
                        {
                            ListRollgangUnits.RemoveItem(i);
                        }
                    }

                    // Обходим список объектов Метка
                    for (int i = 0; i < ListLabelUnits.GetItemsCount(); i++)
                    {
                        if (ListLabelUnits[i].ThreadNumber == threadNumber)
                        {
                            ListLabelUnits.RemoveItem(i);
                        }
                    }

                    // Обходим список объектов Датчик
                    for (int i = 0; i < ListSensorUnits.GetItemsCount(); i++)
                    {
                        if (ListSensorUnits[i].ThreadNumber == threadNumber)
                        {
                            ListSensorUnits.RemoveItem(i);
                        }
                    }

                    // Обходим список объектов Упор
                    for (int i = 0; i < ListStopperUnits.GetItemsCount(); i++)
                    {
                        if (ListStopperUnits[i].ThreadNumber == threadNumber)
                        {
                            ListStopperUnits.RemoveItem(i);
                        }
                    }

                    // Обходим список объектов АгрегатЛинейногоПеремещения
                    for (int i = 0; i < ListLinearDisplacementUnits.GetItemsCount(); i++)
                    {
                        if (ListLinearDisplacementUnits[i].ThreadNumber == threadNumber)
                        {
                            ListLinearDisplacementUnits.RemoveItem(i);
                        }
                    }

                    // Обходим список объектов УдалениеЗастрявших
                    for (int i = 0; i < ListDeleterUnits.GetItemsCount(); i++)
                    {
                        if (ListDeleterUnits[i].ThreadNumber == threadNumber)
                        {
                            ListDeleterUnits.RemoveItem(i);
                        }
                    }

                    // Обходим список объектов Клеть
                    for (int i = 0; i < ListCagesUnits.GetItemsCount(); i++)
                    {
                        if (ListCagesUnits[i].ThreadNumber == threadNumber)
                        {
                            ListCagesUnits.RemoveItem(i);
                        }
                    }

                    // Обходим список объектов ТехУзел
                    for (int i = 0; i < ListTechnicalUnits.GetItemsCount(); i++)
                    {
                        if (ListTechnicalUnits[i].ThreadNumber == threadNumber)
                        {
                            ListTechnicalUnits.RemoveItem(i);
                        }
                    }

                    // Обходим список объектов Производственная линия
                    for (int i = 0; i < ListThreadUnits.GetItemsCount(); i++)
                    {
                        if (ListThreadUnits[i].ThreadNumber == threadNumber)
                        {
                            ListThreadUnits.RemoveItem(i);
                        }
                    }

                    FillProductionThreads();
                }
            }
        }