Example #1
0
        protected override void AnimatedThreadWorkerDoWork(object sender, DoWorkEventArgs e)
        {
            #region Загрузка элементов

            if (InitialDirectiveArray == null)
            {
                InitialDirectiveArray = new CommonCollection <NonRoutineJob>();
            }
            InitialDirectiveArray.Clear();

            AnimatedThreadWorker.ReportProgress(0, "load non-routine jobs");

            try
            {
                InitialDirectiveArray.AddRange(GlobalObjects.NonRoutineJobCore.GetNonRoutineJobsStatus(CurrentAircraft));
            }
            catch (Exception exception)
            {
                Program.Provider.Logger.Log("Error while load non-routine jobs", exception);
            }

            AnimatedThreadWorker.ReportProgress(40, "load non-routine jobs");

            #region Фильтрация директив

            AnimatedThreadWorker.ReportProgress(70, "filter non-routine jobs");

            FilterItems(InitialDirectiveArray, ResultDirectiveArray);

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

            AnimatedThreadWorker.ReportProgress(100, "Complete");

            #endregion
        }
Example #2
0
        public override void DisposeScreen()
        {
            if (AnimatedThreadWorker.IsBusy)
            {
                AnimatedThreadWorker.CancelAsync();
            }
            AnimatedThreadWorker.Dispose();

            _itemsArray.Clear();
            _itemsArray = null;


            if (_toolStripMenuItemTitle != null)
            {
                _toolStripMenuItemTitle.Dispose();
            }
            if (_toolStripMenuItemProperties != null)
            {
                _toolStripMenuItemProperties.Dispose();
            }
            if (_toolStripSeparator1 != null)
            {
                _toolStripSeparator1.Dispose();
            }
            if (_toolStripSeparator2 != null)
            {
                _toolStripSeparator2.Dispose();
            }
            if (_contextMenuStrip != null)
            {
                _contextMenuStrip.Dispose();
            }

            if (_directivesViewer != null)
            {
                _directivesViewer.Dispose();
            }

            Dispose(true);
        }
        protected override void AnimatedThreadWorkerDoWork(object sender, DoWorkEventArgs e)
        {
            if (_parent == null)
            {
                return;
            }
            _purchaseArray.Clear();
            _resultArray.Clear();

            AnimatedThreadWorker.ReportProgress(0, "load Quotations");

            try
            {
                if (filter != null)
                {
                    _purchaseArray.AddRange(GlobalObjects.CasEnvironment.NewLoader.GetObjectList <PurchaseOrderDTO, PurchaseOrder>(filter));
                }
                else
                {
                    _purchaseArray.AddRange(GlobalObjects.CasEnvironment.NewLoader.GetObjectList <PurchaseOrderDTO, PurchaseOrder>());
                }

                var supplierShipper = GlobalObjects.CasEnvironment.Loader.GetObjectList <Supplier>(new ICommonFilter[] { new CommonFilter <int>(Supplier.SupplierClassProperty, SupplierClass.Shipper.ItemId) });
                foreach (var order in _purchaseArray)
                {
                    order.ShipCompany = supplierShipper.FirstOrDefault(i => i.ItemId == order.ShipCompanyId) ?? Supplier.Unknown;
                    order.ShipTo      = supplierShipper.FirstOrDefault(i => i.ItemId == order.ShipToId) ?? Supplier.Unknown;
                }
            }
            catch (Exception ex)
            {
                Program.Provider.Logger.Log("Error while load Quotations", ex);
            }

            AnimatedThreadWorker.ReportProgress(20, "calculation Quotations");

            AnimatedThreadWorker.ReportProgress(70, "filter Quotations");
            FilterItems(_purchaseArray, _resultArray);
            AnimatedThreadWorker.ReportProgress(100, "Complete");
        }
Example #4
0
        protected override void AnimatedThreadWorkerDoWork(object sender, DoWorkEventArgs e)
        {
            _initialDirectiveArray.Clear();
            _resultDirectiveArray.Clear();

            AnimatedThreadWorker.ReportProgress(0, "load Transfer records");

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

            if (CurrentAircraft != null)
            {
                _initialDirectiveArray.AddRange(GlobalObjects.TransferRecordCore.GetTransferRecordsFromAndTo(CurrentAircraft, null)
                                                .Where(tr => tr.StartTransferDate >= dateTimePickerDateFrom.Value && tr.TransferDate <= dateTimePickerDateTo.Value));
            }
            else
            {
                _initialDirectiveArray.AddRange(GlobalObjects.TransferRecordCore.GetTransferRecordsFromAndTo(null, CurrentStore)
                                                .Where(tr => tr.StartTransferDate >= dateTimePickerDateFrom.Value && tr.TransferDate <= dateTimePickerDateTo.Value));
            }


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

            AnimatedThreadWorker.ReportProgress(40, "filter Transfer records");

            AnimatedThreadWorker.ReportProgress(70, "filter Transfer records");

            AnimatedThreadWorker.ReportProgress(80, "filter documents");
            FilterItems(_initialDirectiveArray, _resultDirectiveArray);

            AnimatedThreadWorker.ReportProgress(100, "Complete");
        }
Example #5
0
        private void ButtonFilterClick(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(TextBoxFilter.Text))
            {
                initialfilter   = null;
                quotationfilter = null;
                purchasefilter  = null;
                AnimatedThreadWorker.RunWorkerAsync();
                return;
            }
            var initial   = GlobalObjects.CasEnvironment.Execute(OrdersQueries.InitialSearch(TextBoxFilter.Text));
            var quotation = GlobalObjects.CasEnvironment.Execute(OrdersQueries.QuotationSearch(TextBoxFilter.Text));
            var purchase  = GlobalObjects.CasEnvironment.Execute(OrdersQueries.PurchaseSearch(TextBoxFilter.Text));

            var initialids = new List <int>();

            foreach (DataRow dRow in initial.Tables[0].Rows)
            {
                initialids.Add(int.Parse(dRow[0].ToString()));
            }

            var quotationids = new List <int>();

            foreach (DataRow dRow in quotation.Tables[0].Rows)
            {
                quotationids.Add(int.Parse(dRow[0].ToString()));
            }

            var purchaseids = new List <int>();

            foreach (DataRow dRow in purchase.Tables[0].Rows)
            {
                purchaseids.Add(int.Parse(dRow[0].ToString()));
            }

            initialfilter   = new Filter("ItemId", initialids);
            quotationfilter = new Filter("ItemId", quotationids);
            purchasefilter  = new Filter("ItemId", purchaseids);
            AnimatedThreadWorker.RunWorkerAsync();
        }
Example #6
0
        public override void DisposeScreen()
        {
            if (AnimatedThreadWorker.IsBusy)
            {
                AnimatedThreadWorker.CancelAsync();
            }
            AnimatedThreadWorker.Dispose();

            _itemsArray.Clear();
            _itemsArray = null;

            if (_toolStripMenuItemOpen != null)
            {
                _toolStripMenuItemOpen.Dispose();
            }
            if (_toolStripMenuItemHighlight != null)
            {
                _toolStripMenuItemHighlight.Dispose();
            }
            if (_toolStripSeparator1 != null)
            {
                _toolStripSeparator1.Dispose();
            }
            if (_toolStripSeparator2 != null)
            {
                _toolStripSeparator2.Dispose();
            }
            if (_toolStripSeparator4 != null)
            {
                _toolStripSeparator4.Dispose();
            }

            if (_directivesViewer != null)
            {
                _directivesViewer.Dispose();
            }

            Dispose(true);
        }
Example #7
0
        protected override void AnimatedThreadWorkerDoWork(object sender, DoWorkEventArgs e)
        {
            _itemsArray.Clear();

            AnimatedThreadWorker.ReportProgress(0, "load Fligths");

            GlobalObjects.AircraftFlightsCore.LoadAircraftFlights(CurrentAircraft.ItemId);

            _currentATLB.AircraftFlightsCollection = GlobalObjects.AircraftFlightsCore.GetFlightsByAtlb(CurrentAircraft.ItemId, _currentATLB.ItemId);
            foreach (AircraftFlight flight in _currentATLB.AircraftFlightsCollection)
            {
                flight.ParentATLB = _currentATLB;
            }

            AnimatedThreadWorker.ReportProgress(40, "filter Fligths");

            _itemsArray.AddRange(_currentATLB.AircraftFlightsCollection.ToArray());

            AnimatedThreadWorker.ReportProgress(70, "filter Fligths");

            AnimatedThreadWorker.ReportProgress(100, "Complete");
        }
Example #8
0
        private void ButtonAddClick(object sender, EventArgs e)
        {
            if (_initialDocumentArray.Any(i => i.Type == RevisionType.Edition && i.Status == EditionRevisionStatus.Temporary))
            {
                MessageBox.Show("Edition in status Temporary already exist!", "Exclamation", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                return;
            }


            var form = new EditionForm(new CheckListRevision
            {
                OperatorId = _operatorId,
                Type       = RevisionType.Edition,
                Status     = EditionRevisionStatus.Temporary,
                ManualId   = _manual.ItemId
            });

            if (form.ShowDialog() == DialogResult.OK)
            {
                AnimatedThreadWorker.RunWorkerAsync();
            }
        }
Example #9
0
        private void tempButton_DisplayerRequested(object sender, ReferenceEventArgs e)
        {
            tempStore = (AircraftProxy)((Store)(((AircraftReferenceStatusImageLinkLabel)sender).Aircraft)).GetProxy();

            if (animatedThreadWorker == null)
            {
                if (TaskStart != null)
                {
                    TaskStart(this, new EventArgs());
                }
                item                       = (AircraftReferenceStatusImageLinkLabel)sender;
                e.Cancel                   = true;
                animatedThreadWorker       = new AnimatedThreadWorker(BackgroundAircraftLoad, sender, this);
                animatedThreadWorker.State = "Loading " + tempStore.RegistrationNumber;
                animatedThreadWorker.StartThread();
                animatedThreadWorker.WorkFinished += animatedThreadWorker_WorkFinished;
            }
            else
            {
                e.RequestedEntity = new DispatcheredStoreScreen(tempStore);
            }
        }
Example #10
0
        private void ToolStripMenuItemPublishClick(object sender, EventArgs e)
        {
            var mail = _directivesViewer.SelectedItem;

            mail.PublishingDate = DateTime.Today;
            mail.Status         = MailStatus.Published;

            try
            {
                GlobalObjects.CasEnvironment.NewKeeper.Save(mail);
            }
            catch (Exception ex)
            {
                Program.Provider.Logger.Log("Error while save document", ex);
            }

            AnimatedThreadWorker.DoWork -= AnimatedThreadWorkerDoWork;
            AnimatedThreadWorker.DoWork -= AnimatedThreadWorkerDoFilteringWork;
            AnimatedThreadWorker.DoWork += AnimatedThreadWorkerDoWork;

            AnimatedThreadWorker.RunWorkerAsync();
        }
Example #11
0
        private void HeaderControl1ReloadRised(object sender, EventArgs e)
        {
            if (_directiveGeneralInformation.GetChangeStatus(true) || _performanceControl.GetChangeStatus())
            {
                if (MessageBox.Show("All unsaved data will be lost. Are you sure you want to continue?",
                                    (string)new GlobalTermsProvider()["SystemName"], MessageBoxButtons.YesNoCancel,
                                    MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button2) == DialogResult.Yes)
                {
                    _needReload = true;

                    CancelAsync();
                    AnimatedThreadWorker.RunWorkerAsync();
                }
            }
            else
            {
                _needReload = true;

                CancelAsync();
                AnimatedThreadWorker.RunWorkerAsync();
            }
        }
Example #12
0
        protected override void AnimatedThreadWorkerDoWork(object sender, DoWorkEventArgs e)
        {
            #region Загрузка элементов

            if (InitialDirectiveArray == null)
            {
                InitialDirectiveArray = new CommonCollection <Event>();
            }
            InitialDirectiveArray.Clear();

            AnimatedThreadWorker.ReportProgress(0, "load events");

            try
            {
                InitialDirectiveArray.AddRange(GlobalObjects.CasEnvironment.NewLoader.GetObjectListAll <EventDTO, Event>(new Filter("AircraftId", CurrentAircraft.ItemId), true));
            }
            catch (Exception exception)
            {
                Program.Provider.Logger.Log("Error while load Events", exception);
            }

            AnimatedThreadWorker.ReportProgress(40, "load Events");

            #region Фильтрация директив

            AnimatedThreadWorker.ReportProgress(70, "filter Events");

            FilterItems(InitialDirectiveArray, ResultDirectiveArray);

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

            AnimatedThreadWorker.ReportProgress(100, "Complete");
            #endregion
        }
        /// <summary>
        /// Производит очистку ресурсов страницы
        /// </summary>
        public override void DisposeScreen()
        {
            if (AnimatedThreadWorker.IsBusy)
            {
                AnimatedThreadWorker.CancelAsync();
            }

            AnimatedThreadWorker.DoWork             -= AnimatedThreadWorkerDoWork;
            AnimatedThreadWorker.RunWorkerCompleted -= AnimatedThreadWorkerRunWorkerCompleted;

            AnimatedThreadWorker.Dispose();

            _initialDirectiveArray.Clear();
            _resultDirectiveArray.Clear();

            _initialDirectiveArray = null;
            _resultDirectiveArray  = null;

            if (_additionalFilter != null)
            {
                _additionalFilter.Filters.Clear();
                _additionalFilter = null;
            }

            if (_toolStripMenuItemOpen != null)
            {
                _toolStripMenuItemOpen.Dispose();
            }
            if (_toolStripMenuItemShowTaskCard != null)
            {
                _toolStripMenuItemShowTaskCard.Dispose();
            }
            if (_directivesViewer != null)
            {
                _directivesViewer.Dispose();
            }

            Dispose(true);
        }
Example #14
0
        private void ButtonPublishClick(object sender, EventArgs e)
        {
            if (_currentDirective.CanPublish == false)
            {
                string message = "This Audit can not be published";
                if (_currentDirective.BlockPublishReason != "")
                {
                    message += "\n" + _currentDirective.BlockPublishReason;
                }

                MessageBox.Show(message, (string)new GlobalTermsProvider()["SystemName"],
                                MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            if (_currentDirective.Status != WorkPackageStatus.Closed)
            {
                GlobalObjects.AuditCore.Publish(_currentDirective, DateTime.Now, "");
            }
            else
            {
                switch (MessageBox.Show(@"This Audit is already closed," +
                                        "\nif you want to republish it," +
                                        "\nrecordings created during its execution will be erased." + "\n\n Republish " +
                                        _currentDirective.Title + " Audit?", (string)new GlobalTermsProvider()["SystemName"],
                                        MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation,
                                        MessageBoxDefaultButton.Button2))
                {
                case DialogResult.Yes:
                    GlobalObjects.AuditCore.Publish(_currentDirective, DateTime.Now, "");
                    break;

                case DialogResult.No:
                    //arguments.Cancel = true;
                    break;
                }
            }
            AnimatedThreadWorker.RunWorkerAsync();
        }
Example #15
0
        private void ButtonDeleteClick(object sender, EventArgs e)
        {
            if (_directivesViewer.SelectedItems == null ||
                _directivesViewer.SelectedItems.Count == 0)
            {
                return;
            }

            DialogResult confirmResult =
                MessageBox.Show(_directivesViewer.SelectedItems.Count == 1
                                                ? "Do you really want to delete specialization " + _directivesViewer.SelectedItems[0].FullName + "?"
                                                : "Do you really want to delete selected specializations? ", "Confirm delete operation",
                                MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2);

            if (confirmResult == DialogResult.Yes)
            {
                _directivesViewer.radGridView1.BeginUpdate();
                GlobalObjects.NewKeeper.Delete(_directivesViewer.SelectedItems.OfType <BaseEntityObject>().ToList(), true);
                _directivesViewer.radGridView1.EndUpdate();
                AnimatedThreadWorker.RunWorkerAsync();
            }
        }
Example #16
0
        public void UpdateInformation(CAAEducationManagment managment, AnimatedThreadWorker animatedThreadWorker)
        {
            var last = new List <LastComplianceView>();

            _animatedThreadWorker = animatedThreadWorker;
            _record = managment.Record;

            if (_record.Settings.LastCompliances != null && _record.Settings.LastCompliances.Any())
            {
                foreach (var comp in _record.Settings.LastCompliances.OrderByDescending(i => i.LastDate))
                {
                    last.Add(new LastComplianceView()
                    {
                        Record         = _record,
                        Course         = managment.Education?.Task?.FullName,
                        LastCompliance = comp,
                        Group          = "Last compliance"
                    });
                }


                if ((bool)_record.Education?.Task?.Repeat.IsNullOrZero())
                {
                    return;
                }

                last.Add(new LastComplianceView()
                {
                    Record         = _record,
                    Course         = managment.Education?.Task?.FullName,
                    LastCompliance = new LastCompliance(),
                    Group          = "Need new compliance"
                });
            }

            listViewCompliance.SetItemsArray(last.ToArray());
            listViewCompliance.AnimatedThreadWorker = _animatedThreadWorker;
            listViewCompliance.IsEditable           = true;
        }
Example #17
0
        /// <summary>
        /// Проверяет, выполняет ли AnimatedThreadWorker задачу, и производит отмену выполнения
        /// </summary>
        protected override void CancelAsync()
        {
            if (AnimatedThreadWorker.IsBusy)
            {
                AnimatedThreadWorker.CancelAsync();
            }

            if (_directiveGeneralInformation != null)
            {
                _directiveGeneralInformation.CancelAsync();
            }

            if (_performanceControl != null)
            {
                _performanceControl.CancelAsync();
            }

            if (_complianceControl != null)
            {
                _complianceControl.CalcelAsync();
            }
        }
Example #18
0
        private void HeaderControlButtonSaveClick(object sender, EventArgs e)
        {
            ATLB lastAtlb = null;

            //TODO:(Evgenii Babak) создать новый метод FindLastATLB
            if (_currentAtlb == null)
            {
                var lastFlight = GlobalObjects.AircraftFlightsCore.GetLastAircraftFlight(CurrentAircraft.ItemId);
                if (lastFlight != null)
                {
                    lastAtlb = GlobalObjects.CasEnvironment.NewLoader.GetObjectById <ATLBDTO, ATLB>(lastFlight.ATLBId);
                }
            }
            else
            {
                var atlbs = GlobalObjects.AircraftFlightsCore.GetATLBsByAircraftId(CurrentAircraft.ItemId);
                if (atlbs.Count > 0)
                {
                    lastAtlb = atlbs.OrderBy(a => a.OpeningDate).Last();
                }
            }

            if (lastAtlb == null)
            {
                MessageBox.Show("On this plane no matches logbook. \n Click Add New ATLB to create a new logbook", "Message infomation", MessageBoxButtons.OK,
                                MessageBoxIcon.Information);
                return;
            }

            if (!Save())
            {
                return;
            }
            MessageBox.Show("Saving was successful", "Message infomation", MessageBoxButtons.OK,
                            MessageBoxIcon.Information);


            AnimatedThreadWorker.RunWorkerAsync();
        }
Example #19
0
 private void ButtonRevisionClick(object sender, EventArgs e)
 {
     if (_parent.Type == RevisionType.Revision)
     {
         var form = new CheckListRevisionEditForm(_operatorId, _parent, _initialDocumentArray, _manual);
         if (form.ShowDialog(this) == DialogResult.OK || form.ShowDialog(this) == DialogResult.Cancel)
         {
             AnimatedThreadWorker.RunWorkerAsync();
         }
     }
     else
     {
         if (_manual.CheckUIType == CheckUIType.Iosa)
         {
             var form = new CheckListRevisionForm(_operatorId, _parent, _manual);
             if (form.ShowDialog(this) == DialogResult.OK || form.ShowDialog(this) == DialogResult.Cancel)
             {
                 AnimatedThreadWorker.RunWorkerAsync();
             }
         }
         else if (_manual.CheckUIType == CheckUIType.Safa)
         {
             var form = new CheckListSafaRevisionForm(_operatorId, _parent, _manual);
             if (form.ShowDialog(this) == DialogResult.OK || form.ShowDialog(this) == DialogResult.Cancel)
             {
                 AnimatedThreadWorker.RunWorkerAsync();
             }
         }
         else if (_manual.CheckUIType == CheckUIType.Icao)
         {
             var form = new CheckListIcaoRevisionForm(_operatorId, _parent, _manual);
             if (form.ShowDialog(this) == DialogResult.OK || form.ShowDialog(this) == DialogResult.Cancel)
             {
                 AnimatedThreadWorker.RunWorkerAsync();
             }
         }
     }
 }
        public override void DisposeScreen()
        {
            if (AnimatedThreadWorker.IsBusy)
            {
                AnimatedThreadWorker.CancelAsync();
            }
            AnimatedThreadWorker.Dispose();

            if (_initialDirectiveArray != null)
            {
                _initialDirectiveArray.Clear();
            }
            _initialDirectiveArray = null;

            if (_resultDirectiveArray != null)
            {
                _resultDirectiveArray.Clear();
            }
            _resultDirectiveArray = null;

            _currentForecast.Dispose();
            _currentForecast = null;

            _openPubQuotations.Clear();
            _openPubQuotations = null;

            if (_toolStripMenuItemOpen != null)
            {
                _toolStripMenuItemOpen.Dispose();
            }

            if (_directivesViewer != null)
            {
                _directivesViewer.Dispose();
            }

            Dispose(true);
        }
Example #21
0
        private void HeaderControl1ReloadRised(object sender, EventArgs e)
        {
            string message;

            if (!ValidateData(out message))
            {
                MessageBox.Show(message + "\nAbort operation", (string)new GlobalTermsProvider()["SystemName"],
                                MessageBoxButtons.OK, MessageBoxIcon.Exclamation,
                                MessageBoxDefaultButton.Button1);
                return;
            }
            if (GetChangeStatus())
            {
                if (MessageBox.Show("All unsaved data will be lost. Are you sure you want to continue?",
                                    (string)new GlobalTermsProvider()["SystemName"], MessageBoxButtons.YesNo,
                                    MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button2) != DialogResult.Yes)
                {
                    return;
                }
            }
            CancelAsync();
            AnimatedThreadWorker.RunWorkerAsync();
        }
Example #22
0
        private void ToolStripMenuItemCloseClick(object sender, EventArgs e)
        {
            foreach (var item in _directivesViewer.SelectedItems)
            {
                if (item.Settings.Status == RoutineStatus.Closed)
                {
                    MessageBox.Show($@"This audit {item.AuditNumber} is already closed!", (string)new GlobalTermsProvider()["SystemName"],
                                    MessageBoxButtons.OK, MessageBoxIcon.Exclamation,
                                    MessageBoxDefaultButton.Button2);
                    continue;
                }

                item.Settings.Status      = RoutineStatus.Closed;
                item.Settings.ClosingDate = DateTime.Now;
                item.Settings.ClosedId    = GlobalObjects.CaaEnvironment.IdentityUser.ItemId;
                GlobalObjects.CaaEnvironment.NewKeeper.Save(item);
                AnimatedThreadWorker.DoWork -= AnimatedThreadWorkerDoWork;
                AnimatedThreadWorker.DoWork -= AnimatedThreadWorkerDoFilteringWork;
                AnimatedThreadWorker.DoWork += AnimatedThreadWorkerDoWork;

                AnimatedThreadWorker.RunWorkerAsync();
            }
        }
Example #23
0
        public override void DisposeScreen()
        {
            CancelAsync();

            AnimatedThreadWorker.Dispose();

            if (_itemPrintReportHistory != null)
            {
                _itemPrintReportHistory.Dispose();
            }
            if (_itemPrintReportRecords != null)
            {
                _itemPrintReportRecords.Dispose();
            }
            if (_buttonPrintMenuStrip != null)
            {
                _buttonPrintMenuStrip.Dispose();
            }

            _currentDirective = null;

            Dispose(true);
        }
        private void ToolStripMenuItemCloseClick(object sender, EventArgs e)
        {
            var selected = _directivesViewer.SelectedItems.ToArray();

            foreach (var rfq in selected)
            {
                if (rfq.Status == WorkPackageStatus.Closed)
                {
                    MessageBox.Show("Initional Order " + rfq.Title + " is already closed.",
                                    (string)new GlobalTermsProvider()["SystemName"], MessageBoxButtons.OK,
                                    MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
                    continue;
                }

                rfq.Status      = WorkPackageStatus.Closed;
                rfq.ClosingDate = DateTime.Now;
                rfq.CloseByUser = GlobalObjects.CasEnvironment.IdentityUser.ToString();
                rfq.ClosedById  = GlobalObjects.CasEnvironment.IdentityUser.ItemId;
                GlobalObjects.CasEnvironment.NewKeeper.Save(rfq);
            }

            AnimatedThreadWorker.RunWorkerAsync();
        }
Example #25
0
        private void CloseWorkPackage()
        {
            IEnumerable <AuditRecord> blockedRecords =
                _currentDirective.AuditRecords
                .Where(rec => rec.Task != null &&
                       rec.Task.NextPerformances != null &&
                       rec.Task.NextPerformances.Count > 0 &&
                       rec.Task.NextPerformances.Any(np => np.BlockedByPackage != null &&
                                                     np.BlockedByPackage.ItemId != _currentDirective.ItemId));

            if (_currentDirective.CanClose == false || blockedRecords.Any())
            {
                string message = "This audit can not be closed";
                foreach (AuditRecord blockedRecord in blockedRecords)
                {
                    NextPerformance np = blockedRecord.Task.NextPerformances.First(n => n.BlockedByPackage != null);
                    message += $"\nTask: {blockedRecord.Task} blocked by audit {np.BlockedByPackage}";
                }
                if (_currentDirective.MaxClosingDate < _currentDirective.MinClosingDate)
                {
                    message +=
                        $"\nMin Closing Date: {_currentDirective.MinClosingDate} better than Max Closing Date: {_currentDirective.MaxClosingDate}";
                }
                MessageBox.Show(message, (string)new GlobalTermsProvider()["SystemName"],
                                MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            AuditClosingFormNew form = new AuditClosingFormNew(_currentDirective);

            form.ShowDialog();
            if (form.DialogResult == DialogResult.OK)
            {
                AnimatedThreadWorker.RunWorkerAsync();
            }
        }
Example #26
0
        protected override void AnimatedThreadWorkerDoWork(object sender, DoWorkEventArgs e)
        {
            _initialDocumentArray.Clear();
            _resultDocumentArray.Clear();

            AnimatedThreadWorker.ReportProgress(0, "load directives");

            _initialDocumentArray.AddRange(GlobalObjects.CasEnvironment.Loader.GetObjectListAll <Specialist>(loadChild: true));
            var aircraftModels = GlobalObjects.CasEnvironment.NewLoader.GetObjectList <AccessoryDescriptionDTO, AircraftModel>(new Filter("ModelingObjectTypeId", 7));

            foreach (var specialist in _initialDocumentArray)
            {
                foreach (var training in specialist.SpecialistTrainings)
                {
                    if (training.AircraftTypeID > 0)
                    {
                        training.AircraftType = aircraftModels.FirstOrDefault(a => a.ItemId == training.AircraftTypeID);
                    }
                }
                foreach (var license in specialist.Licenses)
                {
                    if (license.AircraftTypeID > 0)
                    {
                        license.AircraftType = aircraftModels.FirstOrDefault(a => a.ItemId == license.AircraftTypeID);
                    }
                }
            }

            AnimatedThreadWorker.ReportProgress(40, "filter directives");

            AnimatedThreadWorker.ReportProgress(70, "filter directives");

            FilterItems(_initialDocumentArray, _resultDocumentArray);

            AnimatedThreadWorker.ReportProgress(100, "Complete");
        }
Example #27
0
        public MailListScreen(Operator currentOperator, MailChats mailChat) : this()
        {
            if (currentOperator == null)
            {
                throw new ArgumentNullException("currentOperator", "Cannot display null-currentOperator");
            }

            aircraftHeaderControl1.Operator = currentOperator;
            _filter   = new CommonFilterCollection(typeof(MailRecords));
            _mailChat = mailChat;


            var operatorName = GlobalObjects.CasEnvironment.Operators[0].Name;
            var from         = _mailChat.SupplierFrom != Supplier.Unknown ? _mailChat.SupplierFrom.ToString() : operatorName;
            var to           = _mailChat.SupplierTo != Supplier.Unknown ? _mailChat.SupplierTo.ToString() : operatorName;

            labelFromTo.Text      = $"From - To: {from} - {to}";
            labelDescription.Text = $"Description: {_mailChat.Description}";

            InitToolStripMenuItems();
            InitListView();

            AnimatedThreadWorker.RunWorkerAsync();
        }
Example #28
0
        protected override void AnimatedThreadWorkerDoWork(object sender, DoWorkEventArgs e)
        {
            #region Загрузка элементов
            _initialTrackArray.Clear();
            _initialTrackRecordArray.Clear();

            AnimatedThreadWorker.ReportProgress(0, "load records");

            try
            {
                _initialTrackArray.AddRange(GlobalObjects.FlightTrackCore.GetAllFlightTracks(true));
                _initialTrackRecordArray.AddRange(_initialTrackArray.SelectMany(i => i.FlightTripRecord));
            }
            catch (Exception exception)
            {
                Program.Provider.Logger.Log("Error while load records", exception);
            }

            AnimatedThreadWorker.ReportProgress(40, "Calculate records");

            #region Фильтрация директив

            AnimatedThreadWorker.ReportProgress(70, "filter records");

            FilterItems(_initialTrackRecordArray, _resultTrackRecordArray);

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

            AnimatedThreadWorker.ReportProgress(100, "Complete");
            #endregion
        }
        private void ForecastMenuClick(object sender, EventArgs e)
        {
            CancelAsync();

            List <BaseComponent> aircraftBaseComponents = null;

            if (CurrentAircraft != null)
            {
                //поиск деталей данного самолета
                aircraftBaseComponents = new List <BaseComponent>(GlobalObjects.ComponentCore.GetAicraftBaseComponents(CurrentAircraft.ItemId));
                //очистка массива данных по прогнозам
                if (aircraftBaseComponents.Count != 0)
                {
                    _currentForecast.ForecastDatas.Clear();
                }
            }
            else
            {
                _currentForecast.ForecastDatas[0].ForecastLifelength = new Lifelength(0, 0, 0);
            }

            switch ((string)sender)
            {
            case "No Forecast":
            {
            }
            break;

            case "Today":
            {
                if (aircraftBaseComponents != null)
                {
                    //составление нового массива данных по прогнозам
                    foreach (var baseComponent in aircraftBaseComponents)
                    {
                        //определение ресурсов прогноза для каждой базовой детали
                        ForecastData forecastData =
                            new ForecastData(DateTime.Today,
                                             baseComponent,
                                             GlobalObjects.CasEnvironment.Calculator.GetCurrentFlightLifelength(baseComponent));
                        //дабавление в массив
                        _currentForecast.ForecastDatas.Add(forecastData);
                    }
                    ForecastData main = _currentForecast.GetForecastDataFrame() ??
                                        _currentForecast.ForecastDatas[0];

                    labelDateAsOf.Text =
                        "Forecast date: " + SmartCore.Auxiliary.Convert.GetDateFormat(main.ForecastDate) +
                        " Aircraft TSN/CSN: " + main.ForecastLifelength +
                        "\nAvg. utlz: " + main.AverageUtilization;
                }
            }
            break;

            case "This week":
            {
                if (aircraftBaseComponents != null)
                {
                    //составление нового массива данных по прогнозам
                    foreach (var baseComponent in aircraftBaseComponents)
                    {
                        //определение ресурсов прогноза для каждой базовой детали
                        ForecastData forecastData =
                            new ForecastData(DateTime.Today.AddDays(7),
                                             baseComponent,
                                             GlobalObjects.CasEnvironment.Calculator.GetCurrentFlightLifelength(baseComponent));
                        //дабавление в массив
                        _currentForecast.ForecastDatas.Add(forecastData);
                    }
                    ForecastData main = _currentForecast.GetForecastDataFrame() ??
                                        _currentForecast.ForecastDatas[0];

                    labelDateAsOf.Text =
                        "Forecast date: " + SmartCore.Auxiliary.Convert.GetDateFormat(main.ForecastDate) +
                        " Aircraft TSN/CSN: " + main.ForecastLifelength +
                        "\nAvg. utlz: " + main.AverageUtilization;
                }
            }
            break;

            case "Two weeks":
            {
                if (aircraftBaseComponents != null)
                {
                    //составление нового массива данных по прогнозам
                    foreach (var baseComponent in aircraftBaseComponents)
                    {
                        //определение ресурсов прогноза для каждой базовой детали
                        ForecastData forecastData =
                            new ForecastData(DateTime.Today.AddDays(14),
                                             baseComponent,
                                             GlobalObjects.CasEnvironment.Calculator.GetCurrentFlightLifelength(baseComponent));
                        //дабавление в массив
                        _currentForecast.ForecastDatas.Add(forecastData);
                    }
                    ForecastData main = _currentForecast.GetForecastDataFrame() ??
                                        _currentForecast.ForecastDatas[0];

                    labelDateAsOf.Text =
                        "Forecast date: " + SmartCore.Auxiliary.Convert.GetDateFormat(main.ForecastDate) +
                        " Aircraft TSN/CSN: " + main.ForecastLifelength +
                        "\nAvg. utlz: " + main.AverageUtilization;
                }
            }
            break;

            case "Month":
            {
                if (aircraftBaseComponents != null)
                {
                    //составление нового массива данных по прогнозам
                    foreach (var baseComponent in aircraftBaseComponents)
                    {
                        //определение ресурсов прогноза для каждой базовой детали
                        ForecastData forecastData =
                            new ForecastData(DateTime.Today.AddMonths(1),
                                             baseComponent,
                                             GlobalObjects.CasEnvironment.Calculator.GetCurrentFlightLifelength(baseComponent));
                        //дабавление в массив
                        _currentForecast.ForecastDatas.Add(forecastData);
                    }
                    ForecastData main = _currentForecast.GetForecastDataFrame() ??
                                        _currentForecast.ForecastDatas[0];

                    labelDateAsOf.Text =
                        "Forecast date: " + SmartCore.Auxiliary.Convert.GetDateFormat(main.ForecastDate) +
                        " Aircraft TSN/CSN: " + main.ForecastLifelength +
                        "\nAvg. utlz: " + main.AverageUtilization;
                }
            }
            break;

            case "Custom":
            {
                if (aircraftBaseComponents != null)
                {
                    //составление нового массива данных по прогнозам
                    foreach (var baseComponent in aircraftBaseComponents)
                    {
                        //определение ресурсов прогноза для каждой базовой детали
                        ForecastData forecastData =
                            new ForecastData(DateTime.Today,
                                             baseComponent,
                                             GlobalObjects.CasEnvironment.Calculator.GetCurrentFlightLifelength(baseComponent));
                        //дабавление в массив
                        _currentForecast.ForecastDatas.Add(forecastData);
                    }
                }
                ForecastData                main         = _currentForecast.GetForecastDataFrame() ?? _currentForecast.ForecastDatas[0];
                ForecastCustomsWriteData    form         = new ForecastCustomsWriteData(_currentForecast);
                ForecastCustomsAdvancedForm advancedForm = new ForecastCustomsAdvancedForm(_currentForecast);

                form.ShowDialog();

                if (form.DialogResult != DialogResult.OK && form.CallAdvanced)
                {
                    advancedForm.ShowDialog();
                }

                if (form.DialogResult == DialogResult.OK || advancedForm.DialogResult == DialogResult.OK)
                {
                    if (main.SelectedForecastType == ForecastType.ForecastByDate)
                    {
                        if (CurrentAircraft != null)
                        {
                            labelDateAsOf.Text =
                                "Forecast date: " + SmartCore.Auxiliary.Convert.GetDateFormat(main.ForecastDate) +
                                " Aircraft TSN/CSN: " + main.ForecastLifelength +
                                "\nAvg. utlz: " + main.AverageUtilization;
                        }
                        else
                        {
                            labelDateAsOf.Text =
                                "Forecast date: " + SmartCore.Auxiliary.Convert.GetDateFormat(main.ForecastDate) +
                                " Component TSN/CSN: " + main.ForecastLifelength +
                                "\nAvg. utlz: " + main.AverageUtilization;
                        }
                    }
                    else if (main.SelectedForecastType == ForecastType.ForecastByPeriod)
                    {
                        labelDateAsOf.Text =
                            "Forecast Period From: " + SmartCore.Auxiliary.Convert.GetDateFormat(main.LowerLimit) +
                            " To: " + SmartCore.Auxiliary.Convert.GetDateFormat(main.ForecastDate) +
                            "\nAvg. utlz: " + main.AverageUtilization;
                    }
                    else if (main.SelectedForecastType == ForecastType.ForecastByCheck)
                    {
                        if (main.NextPerformanceByDate)
                        {
                            labelDateAsOf.Text = "Forecast: " + main.NextPerformanceString;
                        }
                        else
                        {
                            labelDateAsOf.Text =
                                $"Forecast: {main.CheckName}. {main.NextPerformance}";
                        }
                    }
                }
                else
                {
                    return;
                }
            }
            break;
            }
            AnimatedThreadWorker.DoWork -= AnimatedThreadWorkerDoWork;
            AnimatedThreadWorker.DoWork -= AnimatedThreadWorkerDoFilteringWork;
            AnimatedThreadWorker.DoWork += AnimatedThreadWorkerDoWork;

            AnimatedThreadWorker.RunWorkerAsync();
        }
        protected override void AnimatedThreadWorkerDoWork(object sender, DoWorkEventArgs e)
        {
            _currentForecast.Kits.Clear();

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

            try
            {
                AnimatedThreadWorker.ReportProgress(0, "calc. Maint. Checks kits");
                _currentForecast.Kits.AddRange(GlobalObjects.AnalystCore.GetMaintenanceChecksKits(_currentForecast));

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

                AnimatedThreadWorker.ReportProgress(9, "calc. Maint. Directives kits");
                _currentForecast.Kits.AddRange(GlobalObjects.AnalystCore.GetMaintenanceDirectivesKits(_currentForecast));

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

                AnimatedThreadWorker.ReportProgress(19, "calc. Base details kits");
                _currentForecast.Kits.AddRange(GlobalObjects.AnalystCore.GetBaseComponentsAndComponentDirectivesKits(_currentForecast));

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

                AnimatedThreadWorker.ReportProgress(29, "calc. Components kits");
                _currentForecast.Kits.AddRange(GlobalObjects.AnalystCore.GetComponentsAndComponentDirectivesKits(_currentForecast));

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

                AnimatedThreadWorker.ReportProgress(39, "calc. AD kits");
                _currentForecast.Kits.AddRange(GlobalObjects.AnalystCore.GetDirectivesKits(_currentForecast, DirectiveType.AirworthenessDirectives));

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

                AnimatedThreadWorker.ReportProgress(49, "calc. Damages kits");
                _currentForecast.Kits.AddRange(GlobalObjects.AnalystCore.GetDirectivesKits(_currentForecast, DirectiveType.DamagesRequiring));

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

                AnimatedThreadWorker.ReportProgress(59, "calc. Deffered kits");
                _currentForecast.Kits.AddRange(GlobalObjects.AnalystCore.GetDirectivesKits(_currentForecast, DirectiveType.DeferredItems));

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

                AnimatedThreadWorker.ReportProgress(69, "calc. Engineering orders kits");
                _currentForecast.Kits.AddRange(GlobalObjects.AnalystCore.GetEngineeringOrdersKits(_currentForecast));

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

                AnimatedThreadWorker.ReportProgress(79, "calc. Service bulletins kits");
                _currentForecast.Kits.AddRange(GlobalObjects.AnalystCore.GetServiceBulletinsKits(_currentForecast));

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

                AnimatedThreadWorker.ReportProgress(89, "calc. Out of phase kits");
                _currentForecast.Kits.AddRange(GlobalObjects.AnalystCore.GetDirectivesKits(_currentForecast, DirectiveType.OutOfPhase));

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

                AnimatedThreadWorker.ReportProgress(90, "Filter kits");

                _initialDirectiveArray.Clear();
                _initialDirectiveArray.AddRange(_currentForecast.Kits.ToArray());

                FilterItems(_initialDirectiveArray, _resultDirectiveArray);

                #region Загрузка Котировочных ордеров

                AnimatedThreadWorker.ReportProgress(95, "Load Quotations");

                //загрузка рабочих пакетов для определения
                //перекрытых ими выполнений задач
                if (_openPubQuotations == null)
                {
                    _openPubQuotations = new CommonCollection <RequestForQuotation>();
                }

                _openPubQuotations.Clear();
                _openPubQuotations.AddRange(GlobalObjects.PurchaseCore.GetRequestForQuotation(CurrentAircraft, new[] { WorkPackageStatus.Opened, WorkPackageStatus.Published }));

                if (AnimatedThreadWorker.CancellationPending)
                {
                    e.Cancel = true;
                    return;
                }
                #endregion
            }
            catch (Exception ex)
            {
                Program.Provider.Logger.Log("Error while loading data", ex);
            }

            AnimatedThreadWorker.ReportProgress(100, "calc. kits over");
        }