Ejemplo n.º 1
0
        private void ToolStripMenuItemOpenClick(object sender, EventArgs e)
        {
            ComponentCollection selected = new ComponentCollection();

            foreach (BaseEntityObject o in _directivesViewer.SelectedItems)
            {
                if (o is ComponentDirective)
                {
                    selected.CompareAndAdd(((ComponentDirective)o).ParentComponent);
                }
                if (o is Component)
                {
                    selected.CompareAndAdd((Component)o);
                }
            }

            foreach (Component t in selected)
            {
                var             refE      = new ReferenceEventArgs();
                DisplayerParams dp        = null;
                string          regNumber = "";
                if (t is BaseComponent)
                {
                    if (((BaseComponent)t).BaseComponentType.ItemId == 4)
                    {
                        regNumber = t.ToString();
                    }
                    else
                    {
                        dp = ScreenAndFormManager.GetBaseComponentScreen((BaseComponent)t);
                    }
                }
                else
                {
                    dp = ScreenAndFormManager.GetComponentScreen(t);
                }
                refE.SetParameters(dp);
                InvokeDisplayerRequested(refE);
            }
        }
Ejemplo n.º 2
0
        protected override void AnimatedThreadWorkerDoWork(object sender, DoWorkEventArgs e)
        {
            AnimatedThreadWorker.ReportProgress(0, "load components");

            var resultCollection = new ComponentCollection();

            _preResultDirectiveArray.Clear();
            _resultDirectiveArray.Clear();
            _removedComponents.Clear();
            _removedTransfers.Clear();
            _waitRemoveConfirmComponents.Clear();
            _waitRemoveConfirmTransfers.Clear();
            _installedComponents.Clear();
            _installedTransfers.Clear();

            #region Загрузка всех компонентов

            resultCollection = GlobalObjects.ComponentCore.GetSupplierProcessing();


            //////////////////////////////////////////////////////
            //     проверка на установленные компоненты         //
            //////////////////////////////////////////////////////
            var lastInstalledDetails = resultCollection.GetLastInstalledComponentsOnProcessing();
            foreach (var component in lastInstalledDetails)
            {
                _installedComponents.Add(component);
                _installedTransfers.Add(component.TransferRecords.GetLast());

                //удаление данного компонента из коллекции
                //т.к. его отображать не нужно
                resultCollection.Remove(component);
            }

            //////////////////////////////////////////////////////
            //        проверка на удаленные компоненты          //
            //////////////////////////////////////////////////////

            //извлечение из базы данных всех записей о перемещении
            //компонентов с данного базового агрегата
            var records = new TransferRecordCollection();
            records.AddRange(GlobalObjects.TransferRecordCore.GetLastTransferRecordsFromSuppliers().ToArray());
            records.AddRange(GlobalObjects.TransferRecordCore.GetLastTransferRecordsFromSpecialist().ToArray());

            foreach (var record in records)
            {
                //загрузка и БД детали, которой пренадлежит данная запись о перемещении
                var component = GlobalObjects.ComponentCore.GetComponentById(record.ParentId);

                if (component == null)
                {
                    continue;
                }

                if (record.DODR)
                {
                    //если перемещение подтверждено, то деталь записывается в "перемещенные"
                    //окна "TransferedDetails"
                    if (_removedComponents.CompareAndAdd(component))
                    {
                        _removedTransfers.Add(record);
                    }
                }
                else
                {
                    //если перемещение не подтверждено, то деталь записывается в
                    //"ожидабщие подтверждения" окна "TransferedDetails"
                    if (_waitRemoveConfirmComponents.CompareAndAdd(component))
                    {
                        _waitRemoveConfirmTransfers.Add(record);
                    }
                }
            }


            #endregion

            #region Слияние компонентов в одну коллекцию

            AnimatedThreadWorker.ReportProgress(40, "calculation of components");

            foreach (var component in resultCollection)
            {
                _preResultDirectiveArray.Add(component);
            }

            if (AnimatedThreadWorker.CancellationPending)
            {
                e.Cancel = true;
                return;
            }
            #endregion

            AdditionalFilterItems(_preResultDirectiveArray, _resultDirectiveArray);

            AnimatedThreadWorker.ReportProgress(100, "calculation over");
        }