private void AnimatedThreadWorkerDoLoad(object sender, DoWorkEventArgs e) { if (_supplier == null) { e.Cancel = true; return; } if (_tasksForSelect == null) { _tasksForSelect = new CommonCollection <Product>(); } _tasksForSelect.Clear(); if (_bindedTasks == null) { _bindedTasks = new CommonCollection <KitSuppliersRelation>(); } _bindedTasks.Clear(); _animatedThreadWorker.ReportProgress(0, "load binded tasks"); try { _tasksForSelect.AddRange(GlobalObjects.CasEnvironment.NewLoader.GetObjectListAll <AccessoryDescriptionDTO, Product>(new Filter("ModelingObjectTypeId", -1), true)); List <Product> supplierProducts = GlobalObjects.PurchaseCore.GetProducts(_supplier); foreach (Product supplierProduct in supplierProducts) { _tasksForSelect.RemoveById(supplierProduct.ItemId); _bindedTasks.Add(supplierProduct.SupplierRelations.FirstOrDefault(ksr => ksr.SupplierId == _supplier.ItemId)); } } catch (Exception ex) { string s = $"Error while load Products For selection for supplier {_supplier} id: {_supplier.ItemId}"; Program.Provider.Logger.Log(s, ex); } if (_animatedThreadWorker.CancellationPending) { e.Cancel = true; return; } _animatedThreadWorker.ReportProgress(100, "binding complete"); }
private void AnimatedThreadWorkerDoLoad(object sender, DoWorkEventArgs e) { if (_maintenanceCheck == null || _currentAircraft == null) { e.Cancel = true; return; } if (_records == null) { _records = new CommonCollection <MaintenanceCheckBindTaskRecord>(); } _records.Clear(); if (_recordsTasks == null) { _recordsTasks = new CommonCollection <BaseEntityObject>(); } _recordsTasks.Clear(); if (_mpdForSelect == null) { _mpdForSelect = new CommonCollection <MaintenanceDirective>(); } _mpdForSelect.Clear(); _animatedThreadWorker.ReportProgress(0, "load binded tasks"); var preResult = new List <MaintenanceCheckBindTaskRecord>(); try { preResult.AddRange(GlobalObjects.WorkPackageCore.GetMaintenanceBingTasksRecords(_workPackage.ItemId)); _records.AddRange(preResult.Where(r => r.CheckId == _maintenanceCheck.ItemId)); _recordsTasks.AddRange(_records.Where(r => r.Task != null && r.Task is BaseEntityObject).Select(r => r.Task as BaseEntityObject)); if (_maintenanceCheck.Grouping) { MaintenanceNextPerformance mnp = _maintenanceCheck.GetNextPergormanceGroupWhereCheckIsSenior(); if (mnp != null && mnp.PerformanceGroup != null && mnp.PerformanceGroup.Checks.Count > 0) { _recordsTasks.AddRange(mnp.PerformanceGroup.Checks.SelectMany(mc => mc.BindMpds).ToArray()); } else { _recordsTasks.AddRange(_maintenanceCheck.BindMpds.ToArray()); } } else { _recordsTasks.AddRange(_maintenanceCheck.BindMpds.ToArray()); } } catch (Exception ex) { Program.Provider.Logger.Log("Error while load Maintenance check bing tasks records", ex); } if (_animatedThreadWorker.CancellationPending) { e.Cancel = true; return; } _animatedThreadWorker.ReportProgress(50, "calculation of Maintenance Directives"); try { _mpdForSelect.AddRange(_workPackage.MaintenanceDirectives); _mpdForSelect.AddRange(_workPackage.ComponentDirectives.Where(dd => dd.MaintenanceDirective != null) .Select(dd => dd.MaintenanceDirective).Distinct()); foreach (MaintenanceCheckBindTaskRecord record in preResult.Where(record => record.TaskType == SmartCoreType.MaintenanceDirective && _mpdForSelect.FirstOrDefault(m => m.ItemId == record.TaskId) != null)) { _mpdForSelect.RemoveById(record.TaskId); } foreach (MaintenanceDirective mpd in _allWpChecks.SelectMany(mc => mc.BindMpds)) { _mpdForSelect.RemoveById(mpd.ItemId); } } catch (Exception ex) { Program.Provider.Logger.Log("Error while load directives for select", ex); } if (_animatedThreadWorker.CancellationPending) { e.Cancel = true; return; } _animatedThreadWorker.ReportProgress(75, "calculate directives for select"); //try //{ // _mpdForSelect.AddRange(GlobalObjects.CasEnvironment.Loader.GetMaintenanceDirectives(_maintenanceCheck.ParentAircraft)); //} //catch (Exception ex) //{ // Program.Provider.Logger.Log("Error while calculate directives for select", ex); //} if (_animatedThreadWorker.CancellationPending) { e.Cancel = true; return; } _animatedThreadWorker.ReportProgress(100, "binding complete"); }