private void ButtonDeleteClick(object sender, EventArgs e) { if (listViewBindedTasks.SelectedItems.Count == 0) { return; } //Коллекция элементов которые нужно добавить в элемента управления содержащий список всех задач var itemsToInsert = new CommonCollection <BaseEntityObject>(); var detailDirectives = listViewBindedTasks.SelectedItems.OfType <ComponentDirective>().ToList(); foreach (var selectedItem in detailDirectives) { try { //Если задача по компоненту была сохранена в бд , то добавляем в список удаляемых элементов if (selectedItem.ItemId > 0) { itemsToInsert.Add(selectedItem); _bindedItemsToRemove.Add(selectedItem); } //Удаление задачи по компоненту из коллекции содержащей все связаные задачи _bindedItems.Remove(selectedItem); //Удаление задачи по компоненту из элемента управления содержащего список всех привязаных задач listViewBindedTasks.RemoveItem(selectedItem); //если в коллекции содержащей все связные задачи не содержится задач по компоненту, //которые принадлежат тому же компоненту что и текущая задача //требуется удалить компонент из коллекции содержащей все связные задачи if (_bindedItems.OfType <ComponentDirective>().All(x => x.ParentComponent.ItemId != selectedItem.ParentComponent.ItemId)) { _bindedItems.Remove(selectedItem.ParentComponent); //Удаление компонента из элемента управления содержащего список всех привязаных задач listViewBindedTasks.RemoveItem(selectedItem.ParentComponent); } if (_newBindedItems.ContainsKey(selectedItem.ParentComponent)) { //Удаление задачи по компоненту из коллекции новых привязанных зачач по компоненту _newBindedItems[selectedItem.ParentComponent].Remove(selectedItem); //Если среди новых привязанных задач по компоненту не содержатся задачи по компонентам, //которые принадлежат тому же компоненту что и текущая задача //требуется удалить компонент из словаря if (_newBindedItems[selectedItem.ParentComponent].Count == 0) { _newBindedItems.Remove(selectedItem.ParentComponent); } } } catch (Exception ex) { Program.Provider.Logger.Log("Error while delete bind task record", ex); } } listViewTasksForSelect.InsertItems(itemsToInsert); }
private void ButtonDeleteClick(object sender, EventArgs e) { CommonCollection <Hangar> stores = new CommonCollection <Hangar>(); foreach (ReferenceStatusImageLinkLabel item in _controlItems) { stores.Add((Hangar)item.Tag); } CommonDeletingForm cdf = new CommonDeletingForm(typeof(Hangar), stores); if (cdf.ShowDialog() == DialogResult.OK) { if (cdf.DeletedObjects.Count == 0) { return; } foreach (BaseEntityObject o in cdf.DeletedObjects) { Hangar s = o as Hangar; if (s != null) { _itemsollection.Remove(s); } } FillUiElementsFromCollection(); } }
private void buttonDelete_Click(object sender, EventArgs e) { if (workPackageEmployeeListView2.SelectedItems.Count == 0) { return; } foreach (var selectedItem in workPackageEmployeeListView2.SelectedItems) { try { var wpSpecialist = _workPackageSpecialists.First(s => s.SpecialistId == selectedItem.ItemId); if (wpSpecialist != null) { GlobalObjects.CasEnvironment.NewKeeper.Delete(wpSpecialist); } _wpSpecialists.Remove(selectedItem); workPackageEmployeeListView2.SetItemsArray(_wpSpecialists.ToArray()); } catch (Exception ex) { Program.Provider.Logger.Log("Error while save bind task record", ex); } } }
private void ButtonDelete_Click(object sender, EventArgs e) { if (_tocheckListView.SelectedItems.Count > 0) { foreach (var item in _tocheckListView.SelectedItems.ToArray()) { _updateChecks.Remove(item); _addedChecks.Add(item); } } }
private void AnimatedThreadWorkerDoLoad(object sender, DoWorkEventArgs e) { pelSpec.Clear(); specialists.Clear(); var records = GlobalObjects.CaaEnvironment.NewLoader.GetObjectListAll <AuditPelRecordDTO, AuditPelRecord>(new Filter("AuditId", _auditId)); _audit = GlobalObjects.CaaEnvironment.NewLoader.GetObjectById <CAAAuditDTO, CAAAudit>(_auditId); specialists.AddRange(GlobalObjects.CaaEnvironment.NewLoader.GetObjectListAll <CAASpecialistDTO, Specialist>(new Filter("OperatorId", new [] { _audit.OperatorId, -1, _operatorId }.Distinct()), loadChild: true)); pelSpec.AddRange(GlobalObjects.CaaEnvironment.NewLoader.GetObjectList <PelSpecialistDTO, PelSpecialist>(new Filter("AuditId", _auditId))); foreach (var specialist in specialists) { specialist.Operator = GlobalObjects.CaaEnvironment.AllOperators.FirstOrDefault(i => i.ItemId == specialist.OperatorId) ?? AllOperators.Unknown; } foreach (var pel in pelSpec) { pel.Specialist = specialists.FirstOrDefault(i => i.ItemId == pel.SpecialistId); } foreach (var rec in records) { var item = _addedChecks.FirstOrDefault(i => i.ItemId == rec.CheckListId); if (item == null) { continue; } rec.CheckList = item; rec.Auditor = pelSpec.FirstOrDefault(i => i.ItemId == rec.AuditorId)?.Specialist ?? Specialist.Unknown; rec.Auditee = pelSpec.FirstOrDefault(i => i.ItemId == rec.AuditeeId)?.Specialist ?? Specialist.Unknown; _addedChecks.Remove(item); _updateChecks.Add(rec); } }
private void AnimatedThreadWorkerDoLoad(object sender, DoWorkEventArgs e) { if (_currentDirectivePackage == null) { e.Cancel = true; return; } if (_itemsForSelect == null) { _itemsForSelect = new CommonCollection <BaseEntityObject>(); } _itemsForSelect.Clear(); _animatedThreadWorker.ReportProgress(0, "load binded tasks"); try { _itemsForSelect.AddRange(GlobalObjects.DirectiveCore.GetDirectivesByDirectiveType(DirectiveType.AirworthenessDirectives.ItemId).ToArray()); _itemsForSelect.AddRange(GlobalObjects.ComponentCore.GetComponents().ToArray()); _itemsForSelect.AddRange(GlobalObjects.CasEnvironment.NewLoader.GetObjectListAll <MaintenanceDirectiveDTO, MaintenanceDirective>().ToArray()); _itemsForSelect.AddRange(GlobalObjects.CasEnvironment.NewLoader.GetObjectListAll <MaintenanceCheckDTO, MaintenanceCheck>().ToArray()); _itemsForSelect.AddRange(GlobalObjects.CasEnvironment.NewLoader.GetObjectListAll <NonRoutineJobDTO, NonRoutineJob>().ToArray()); foreach (BaseDirectivePackageRecord pr in _currentDirectivePackage.PackageRecords.OfType <BaseDirectivePackageRecord>()) { _itemsForSelect.Remove(_itemsForSelect.FirstOrDefault(i => i.SmartCoreObjectType == pr.PackageItemType && i.ItemId == pr.DirectiveId)); } //Определение списка привязанных задач и компонентов } catch (Exception ex) { Program.Provider.Logger.Log("Error while load Items For Select for Directive Package Form", ex); } if (_animatedThreadWorker.CancellationPending) { e.Cancel = true; return; } _animatedThreadWorker.ReportProgress(75, "calculate directives for select"); if (_animatedThreadWorker.CancellationPending) { e.Cancel = true; return; } _animatedThreadWorker.ReportProgress(100, "binding complete"); }
private void ButtonDelete_Click(object sender, EventArgs e) { if (_tocheckRevisionListView.SelectedItems.Count > 0) { foreach (var item in _tocheckRevisionListView.SelectedItems.ToArray()) { GlobalObjects.CaaEnvironment.NewKeeper.Delete(item); _updateChecks.Remove(item); } _fromcheckRevisionListView.SetItemsArray(_addedChecks.ToArray()); _tocheckRevisionListView.SetItemsArray(_updateChecks.ToArray()); } }
private void ButtonAdd_Click(object sender, EventArgs e) { if (_fromcheckListView.SelectedItems.Count > 0) { foreach (var item in _fromcheckListView.SelectedItems.ToArray()) { _updateChecks.Add(item); _addedChecks.Remove(item); GlobalObjects.CaaEnvironment.NewKeeper.Save(new CheckListRevisionRecord { CheckListId = item.ItemId, ParentId = _parent.ItemId }); } _fromcheckListView.SetItemsArray(_addedChecks.ToArray()); _tocheckListView.SetItemsArray(_updateChecks.ToArray()); } }
private void ButtonDelete_Click(object sender, EventArgs e) { if (_tocheckRevisionListView.SelectedItems.Count > 0) { foreach (var item in _tocheckRevisionListView.SelectedItems.ToArray()) { item.Role = PELRole.Unknown; item.PELResponsibilities = PELResponsibilities.Unknown; item.PELPosition = PELPosition.Unknown; GlobalObjects.CaaEnvironment.NewKeeper.Delete(item); _updateChecks.Remove(item); _addedChecks.Add(item); } _fromcheckRevisionListView.SetItemsArray(_addedChecks.ToArray()); _tocheckRevisionListView.SetItemsArray(_updateChecks.ToArray()); } }
private void ButtonDelete_Click(object sender, EventArgs e) { if (_tocheckListView.SelectedItems.Count > 0) { foreach (var item in _tocheckListView.SelectedItems.ToArray()) { _updateChecks.Remove(item); if (item.RevisionStatus == RevisionCheckType.New) { GlobalObjects.CaaEnvironment.NewKeeper.Delete(item, true); } else { _addedChecks.Add(item); } } GlobalObjects.CaaEnvironment.NewLoader.Execute( $"delete from dbo.CheckListRevisionRecord where ParentId = {_parent.ItemId} and CheckListId in ({string.Join(",",_tocheckListView.SelectedItems.Select(i => i.ItemId))})"); _fromcheckListView.SetItemsArray(_addedChecks.ToArray()); _tocheckListView.SetItemsArray(_updateChecks.ToArray()); } }
protected override void AnimatedThreadWorkerDoWork(object sender, DoWorkEventArgs e) { var initialZeroMaintenanceDirectives = new CommonCollection <MaintenanceDirective>(); var initialMaintenanceDirectives = new CommonCollection <MaintenanceDirective>(); _result.Clear(); _initial.Clear(); _groupLifelengths.Clear(); _groupLifelengthsForZeroCheck.Clear(); if (!_isFirstLoad) { AnimatedThreadWorker.ReportProgress(0, "load checks"); var checks = GlobalObjects.CasEnvironment.NewLoader.GetObjectListAll <MTOPCheckDTO, MTOPCheck>(new Filter("ParentAircraftId", CurrentAircraft.ItemId), true).ToList(); foreach (var check in checks) { foreach (var record in check.PerformanceRecords) { record.Parent = check; } } if (AnimatedThreadWorker.CancellationPending) { e.Cancel = true; return; } AnimatedThreadWorker.ReportProgress(10, "load MPDs"); initialMaintenanceDirectives.AddRange(GlobalObjects.MaintenanceCore.GetMaintenanceDirectives(CurrentAircraft)); var bindedItemsDict = GlobalObjects.BindedItemsCore.GetBindedItemsFor(CurrentAircraft.ItemId, initialMaintenanceDirectives.Where(m => m.WorkItemsRelationType == WorkItemsRelationType.CalculationDepend)); CalculateMaintenanceDirectives(initialMaintenanceDirectives.ToList(), bindedItemsDict); if (AnimatedThreadWorker.CancellationPending) { e.Cancel = true; return; } AnimatedThreadWorker.ReportProgress(50, "calculation"); if (checks.Count > 0) { //Берем утилизацию с Frame var frame = GlobalObjects.CasEnvironment.BaseComponents.FirstOrDefault(i => i.ParentAircraftId == CurrentAircraft.ItemId && Equals(i.BaseComponentType, BaseComponentType.Frame)); var avg = _currentForecast.ForecastDatas[0].AverageUtilization; var lastCompliance = checks.SelectMany(i => i.PerformanceRecords).OrderByDescending(i => i.RecordDate) .FirstOrDefault(); GlobalObjects.MTOPCalculator.CalculateMtopChecks(checks, avg); _groupLifelengths = GlobalObjects.MTOPCalculator.CalculateGroupNew(checks.Where(i => !i.Thresh.IsNullOrZero() && !i.IsZeroPhase).ToList()); GlobalObjects.MTOPCalculator.CalculateNextPerformance(checks.Where(i => !i.IsZeroPhase).ToList(), frame.StartDate, _groupLifelengths, CurrentAircraft, avg, lastCompliance); GlobalObjects.MTOPCalculator.CalculatePhaseWithPerformance(initialMaintenanceDirectives, checks.Where(i => !i.Thresh.IsNullOrZero() && !i.IsZeroPhase).ToList(), avg, _currentForecast.ForecastDatas[0].LowerLimit, _currentForecast.ForecastDatas[0].ForecastDate); var maintenanceZeroChecks = checks.Where(i => i.IsZeroPhase).ToList(); var lowerZeroCheck = maintenanceZeroChecks.Where(i => !i.Thresh.IsNullOrZero()).OrderBy(i => i.Thresh) .FirstOrDefault(); if (lowerZeroCheck != null) { GlobalObjects.MTOPCalculator.CalculateMtopChecks(maintenanceZeroChecks, avg); _groupLifelengthsForZeroCheck = GlobalObjects.MTOPCalculator.CalculateGroupNew(checks.Where(i => !i.Thresh.IsNullOrZero() && i.IsZeroPhase).ToList()); GlobalObjects.MTOPCalculator.CalculateNextPerformance(maintenanceZeroChecks, frame.StartDate, _groupLifelengthsForZeroCheck, CurrentAircraft, avg, lastCompliance); initialZeroMaintenanceDirectives.AddRange(initialMaintenanceDirectives .Where(i => i.MTOPPhase?.FirstPhase == 0).ToArray()); GlobalObjects.MTOPCalculator.CalculatePhaseWithPerformance(initialZeroMaintenanceDirectives, maintenanceZeroChecks, avg, _currentForecast.ForecastDatas[0].LowerLimit, _currentForecast.ForecastDatas[0].ForecastDate, true); } foreach (var d in initialZeroMaintenanceDirectives) { initialMaintenanceDirectives.Remove(d); } _initial.AddRange(initialMaintenanceDirectives.SelectMany(i => i.MtopNextPerformances)); _initial.AddRange(initialZeroMaintenanceDirectives.SelectMany(i => i.MtopNextPerformances)); } #region Фильтрация директив AnimatedThreadWorker.ReportProgress(75, "filter directives"); FilterItems(_initial, _result); if (AnimatedThreadWorker.CancellationPending) { e.Cancel = true; return; } #endregion #region Load WP AnimatedThreadWorker.ReportProgress(75, "filter Work Packages"); if (AnimatedThreadWorker.CancellationPending) { e.Cancel = true; return; } if (_openPubWorkPackages == null) { _openPubWorkPackages = new CommonCollection <WorkPackage>(); } _openPubWorkPackages.Clear(); _openPubWorkPackages.AddRange(GlobalObjects.WorkPackageCore.GetWorkPackagesLite(CurrentAircraft, WorkPackageStatus.Opened)); _openPubWorkPackages.AddRange(GlobalObjects.WorkPackageCore.GetWorkPackagesLite(CurrentAircraft, WorkPackageStatus.Published)); //сбор всех записей рабочих пакетов для удобства фильтрации List <WorkPackageRecord> openWPRecords = new List <WorkPackageRecord>(); foreach (WorkPackage openWorkPackage in _openPubWorkPackages) { openWPRecords.AddRange(openWorkPackage.WorkPakageRecords); } #endregion #region Загрузка Котировочных ордеров AnimatedThreadWorker.ReportProgress(95, "Load Quotations"); //загрузка рабочих пакетов для определения //перекрытых ими выполнений задач if (_openPubQuotations == null) { _openPubQuotations = new CommonCollection <RequestForQuotation>(); } BaseEntityObject parent = CurrentAircraft ?? (BaseEntityObject)CurrentOperator; _openPubQuotations.Clear(); _openPubQuotations.AddRange(GlobalObjects.PurchaseCore.GetRequestForQuotation(parent, new[] { WorkPackageStatus.Opened, WorkPackageStatus.Published })); if (AnimatedThreadWorker.CancellationPending) { e.Cancel = true; return; } #endregion AnimatedThreadWorker.ReportProgress(100, "Completed"); } }
protected override void AnimatedThreadWorkerDoWork(object sender, DoWorkEventArgs e) { _maintenanceChecks.Clear(); _maintenanceZeroChecks.Clear(); _groupLifelengths.Clear(); _groupLifelengthsForZeroCheck.Clear(); _initialMaintenanceDirectives.Clear(); _initialZeroMaintenanceDirectives.Clear(); AnimatedThreadWorker.ReportProgress(0, "load records"); #region Загрузка try { var checks = GlobalObjects.CasEnvironment.NewLoader.GetObjectListAll <MTOPCheckDTO, MTOPCheck>( new Filter("ParentAircraftId", CurrentAircraft.ItemId), true, true); _maintenanceChecks.AddRange(checks.Where(i => !i.IsDeleted)); _maintenanceChecksDeleted.AddRange(checks.Where(i => i.IsDeleted)); var baseComponents = GlobalObjects.ComponentCore.GetAicraftBaseComponents(CurrentAircraft.ItemId); var components = GlobalObjects.ComponentCore.GetComponents(baseComponents.ToList()); var componentDirectives = components.SelectMany(i => i.ComponentDirectives); var mpds = GlobalObjects.MaintenanceCore.GetMaintenanceDirectives(CurrentAircraft); foreach (var componentDirective in componentDirectives) { foreach (var items in componentDirective.ItemRelations.Where(i => i.FirtsItemTypeId == SmartCoreType.MaintenanceDirective.ItemId || i.SecondItemTypeId == SmartCoreType.MaintenanceDirective.ItemId)) { var id = componentDirective.IsFirst == true ? items.SecondItemId : items.FirstItemId; componentDirective.MaintenanceDirective = mpds.FirstOrDefault(i => i.ItemId == id); } } _initialMaintenanceDirectives.AddRange(mpds); _initialMaintenanceDirectives.AddRange(GlobalObjects.DirectiveCore.GetDirectives(CurrentAircraft, DirectiveType.All).ToList()); _initialMaintenanceDirectives.AddRange(componentDirectives); var bindedItemsDict = GlobalObjects.BindedItemsCore.GetBindedItemsFor(CurrentAircraft.ItemId, _initialMaintenanceDirectives.Where(m => m is MaintenanceDirective) .Cast <MaintenanceDirective>().Where(m => m.WorkItemsRelationType == WorkItemsRelationType.CalculationDepend)); CalculateMaintenanceDirectives(_initialMaintenanceDirectives, bindedItemsDict); } catch (Exception exception) { Program.Provider.Logger.Log("Error while load records", exception); } if (AnimatedThreadWorker.CancellationPending) { e.Cancel = true; return; } #endregion AnimatedThreadWorker.ReportProgress(50, "Calculate MTOP"); #region асчет foreach (var check in _maintenanceChecks) { foreach (var record in check.PerformanceRecords) { record.Parent = check; } } foreach (var check in _maintenanceChecksDeleted) { foreach (var record in check.PerformanceRecords) { record.Parent = check; } } if (_maintenanceChecks.Count > 0) { //Берем утилизацию с Frame var frame = GlobalObjects.CasEnvironment.BaseComponents.FirstOrDefault(i => i.ParentAircraftId == CurrentAircraft.ItemId && Equals(i.BaseComponentType, BaseComponentType.Frame)); _averageUtilization = frame.AverageUtilization; var lastCompliance = _maintenanceChecks.Where(i => !i.IsZeroPhase).SelectMany(i => i.PerformanceRecords) .OrderByDescending(i => i.RecordDate).FirstOrDefault(); GlobalObjects.MTOPCalculator.CalculateMtopChecks(_maintenanceChecks, _averageUtilization); _groupLifelengths = GlobalObjects.MTOPCalculator.CalculateGroupNew(_maintenanceChecks .Where(i => !i.Thresh.IsNullOrZero() && !i.IsZeroPhase).ToList()); GlobalObjects.MTOPCalculator.CalculateNextPerformance( _maintenanceChecks.Where(i => !i.IsZeroPhase).ToList(), frame.StartDate, _groupLifelengths, CurrentAircraft, _averageUtilization, lastCompliance); GlobalObjects.MTOPCalculator.CalculateNextPerformance( _maintenanceChecks.Where(i => !i.IsZeroPhase).ToList(), frame.StartDate, _groupLifelengths, CurrentAircraft, _averageUtilization, lastCompliance, true); GlobalObjects.MTOPCalculator.CalculatePhase(_initialMaintenanceDirectives, _maintenanceChecks.Where(i => !i.Thresh.IsNullOrZero() && !i.IsZeroPhase).ToList(), _averageUtilization); _maintenanceZeroChecks = _maintenanceChecks.Where(i => i.IsZeroPhase).ToList(); var lowerZeroCheck = _maintenanceZeroChecks.Where(i => !i.Thresh.IsNullOrZero()).OrderBy(i => i.Thresh) .FirstOrDefault(); if (lowerZeroCheck != null) { lastCompliance = _maintenanceChecks.Where(i => i.IsZeroPhase).SelectMany(i => i.PerformanceRecords) .OrderByDescending(i => i.RecordDate).FirstOrDefault(); GlobalObjects.MTOPCalculator.CalculateMtopChecks(_maintenanceZeroChecks, _averageUtilization); _groupLifelengthsForZeroCheck = GlobalObjects.MTOPCalculator.CalculateGroupNew(_maintenanceZeroChecks); GlobalObjects.MTOPCalculator.CalculateNextPerformance(_maintenanceZeroChecks, frame.StartDate, _groupLifelengthsForZeroCheck, CurrentAircraft, _averageUtilization, lastCompliance); GlobalObjects.MTOPCalculator.CalculateNextPerformance(_maintenanceZeroChecks, frame.StartDate, _groupLifelengthsForZeroCheck, CurrentAircraft, _averageUtilization, lastCompliance, true); _initialZeroMaintenanceDirectives.AddRange(_initialMaintenanceDirectives .Where(i => i.MTOPPhase?.FirstPhase == 0).ToArray()); GlobalObjects.MTOPCalculator.CalculatePhase(_initialZeroMaintenanceDirectives, _maintenanceChecks.Where(i => !i.Thresh.IsNullOrZero() && i.IsZeroPhase).ToList(), _averageUtilization, true); } foreach (var d in _initialZeroMaintenanceDirectives) { _initialMaintenanceDirectives.Remove(d); } //var q = _maintenanceChecks.Where(i => !i.IsZeroPhase).SelectMany(i => i.NextPerformances); //var last = _maintenanceChecks.Where(i => !i.IsZeroPhase).SelectMany(i => i.PerformanceRecords).OrderByDescending(i => i.RecordDate).FirstOrDefault(); //var group = last.GroupName; //var value = Lifelength.Null; //foreach (var performance in q.OrderBy(i => i.PerformanceSource.Days)) //{ // if (value.Days == performance.PerformanceSource.Days) // { // performance.Group = group --; // } // else // { // performance.Group = group++; // } // value = performance.PerformanceSource; //} } if (AnimatedThreadWorker.CancellationPending) { e.Cancel = true; return; } #endregion #region Фильтрация директив AnimatedThreadWorker.ReportProgress(70, "filter records"); FilterItems(_initialMaintenanceDirectives, _resultMaintenanceDirectives); if (AnimatedThreadWorker.CancellationPending) { e.Cancel = true; return; } AnimatedThreadWorker.ReportProgress(90, "filter records"); FilterZeroItems(_initialZeroMaintenanceDirectives, _resultZeroMaintenanceDirectives); if (AnimatedThreadWorker.CancellationPending) { e.Cancel = true; return; } #endregion AnimatedThreadWorker.ReportProgress(100, "Complete"); }