//найти все юсаджи и заменить на использование AircraftCore (Delete и Update) public void DeleteAircraft(int aircraftId) { var deletedAircraft = _aircrafts.GetItemById(aircraftId); if (deletedAircraft == null) { return; } _newKeeper.Delete(deletedAircraft, true); _aircrafts.Remove(deletedAircraft); }
/// <summary> /// Удаляет запись из рабочего пакета /// </summary> /// <param name="accessory"></param> /// <param name="rfq"></param> public void DeleteFromRequestForQuotation(Product accessory, RequestForQuotation rfq) { var rfqRecord = rfq.PackageRecords.FirstOrDefault(wpr => wpr.PackageItemId == accessory.ItemId && wpr.PackageItemType == accessory.SmartCoreObjectType); if (rfqRecord == null) { rfqRecord = _newLoader.GetObject <RequestForQuotationRecordDTO, RequestForQuotationRecord>(new List <Filter>() { new Filter("PackageItemId", accessory.ItemId), new Filter("PackageItemTypeId", accessory.SmartCoreObjectType.ItemId), new Filter("ParentPackageId", rfq.ItemId) }); } if (rfqRecord != null) { _newKeeper.Delete(rfqRecord); } }
/// <summary> /// Удаляет запись о выполнении директивы /// </summary> /// <param name="record"></param> public void Delete(MaintenanceCheckRecord record) { record.IsDeleted = true; _newKeeper.Save(record); // нужно обнулить математический аппарат объекта, которому принадлежит запись о выполнении // а также удалить выполнение директивы из коллекции выполнений директивы if (record.ParentCheck != null && record.ParentCheck.PerformanceRecords != null) { record.ParentCheck.PerformanceRecords.Remove(record); } var ddr = _casEnvironment.NewLoader.GetObjectListAll <DirectiveRecordDTO, DirectiveRecord>(new Filter("MaintenanceCheckRecordId", record.ItemId)); if (ddr.Count <= 0) { return; } foreach (var directiveRecord in ddr) { _newKeeper.Delete(directiveRecord, true, false); } }
/// <summary> /// Удаление TransferRecord /// </summary> /// <param name="transferRecord"></param> public void Delete(TransferRecord transferRecord) { // Ограничение - если у агрегата только одна transfer record - мы не можем ее удалить ... // Добавление & удаление transfer record влияет на математический аппарат // Обнуляем математический аппарат if (transferRecord.ParentComponent != null) { if (transferRecord.ParentComponent.TransferRecords.Count == 1) { throw new Exception("1153: Can not delete single transfer record"); } if (transferRecord.ConsumableId > 0) { //Поиск комплектующего, часть которого была перемещена данной записью Entities.General.Accessory.Component fromConsumable = _componentCore.GetBaseComponentById(transferRecord.ConsumableId) ?? _componentCore.GetComponentById(transferRecord.ConsumableId); if (fromConsumable != null) { //комплектующее найдено //Проверка, находится ли то комплектующее, часть которого была перемещена //на той же локации, с которой была перемещена данная часть TransferRecord consumLocation = fromConsumable.TransferRecords.GetLast(); if (consumLocation != null && ((consumLocation.DestinationObjectType == SmartCoreType.BaseComponent && consumLocation.DestinationObjectId == transferRecord.FromBaseComponentId) || (consumLocation.DestinationObjectType == SmartCoreType.Aircraft && consumLocation.DestinationObjectId == transferRecord.FromAircraftId) || (consumLocation.DestinationObjectType == SmartCoreType.Store && consumLocation.DestinationObjectId == transferRecord.FromStoreId))) { //Если последняя точка назначения исходного комплектующего //совпадает с отправной точкой данной части исходного комплектующего //то необходимо удалить данную часть комплектующуго, а кол-во //перемещенных единиц добавить к исходному комплектующему transferRecord.ParentComponent.IsDeleted = true; _newKeeper.Delete(transferRecord.ParentComponent, true, false); fromConsumable.Quantity += transferRecord.ParentComponent.Quantity > 0 ? transferRecord.ParentComponent.Quantity : 1; _componentCore.Save(fromConsumable); } else { // Иначе, если не найдена последняя запись о перемещении // исходного расходника или // если исходный расходник был перемещен с отправной точки данной части // то нужно произвести простой откат данной записи о перемещении // Сохраняем запись transferRecord.IsDeleted = true; _newKeeper.Save(transferRecord); transferRecord.ParentComponent.TransferRecords.Remove(transferRecord); // Обновляем состояние объекта _componentCore.SetDestinations(transferRecord.ParentComponent); if (transferRecord.ParentComponent is BaseComponent) { _calculator.ResetMath((BaseComponent)transferRecord.ParentComponent); } } } else { // если исходный расходник не найден // то нужно произвести простой откат данной записи о перемещении // Сохраняем запись transferRecord.IsDeleted = true; _newKeeper.Save(transferRecord); transferRecord.ParentComponent.TransferRecords.Remove(transferRecord); // Обновляем состояние объекта _componentCore.SetDestinations(transferRecord.ParentComponent); if (transferRecord.ParentComponent is BaseComponent) { _calculator.ResetMath((BaseComponent)transferRecord.ParentComponent); } } } else { // Сохраняем запись transferRecord.IsDeleted = true; _newKeeper.Save(transferRecord); transferRecord.ParentComponent.TransferRecords.Remove(transferRecord); // Обновляем состояние объекта _componentCore.SetDestinations(transferRecord.ParentComponent); if (transferRecord.ParentComponent is BaseComponent) { _calculator.ResetMath((BaseComponent)transferRecord.ParentComponent); } } } else { throw new Exception("1000: Failed to specify tranfer record parent type"); } }