/// <summary> /// Контрол редактирует данные о залитом масле для одного агрегата /// </summary> public PassengerControl(AircraftFlight flight) : this() { AttachedObject = new FlightPassengerRecord { FlightId = flight.ItemId }; }
/// <summary> /// Создает форму для редактирования данных полета ВС /// </summary> /// <param name="aircraftFlight">Полет ВС</param> public AircraftFlightForm(AircraftFlight aircraftFlight) { currentAircraftFlight = aircraftFlight; mode = ScreenMode.Edit; InitializeComponent(); UpdateInformation(); }
private void aircraftFlight_Reloading(object sender, CancelEventArgs e) { if (!InvokeRequired) { aircraftFlightBeforeReload = (AircraftFlight)sender; } }
/// <summary> /// Контрол редактирует данные о залитом масле для одного агрегата /// </summary> public CargoRecordControl(AircraftFlight flight) : this() { AttachedObject = new FlightCargoRecord { FlightId = flight.ItemId }; }
///<summary> /// Создает страницу для отображения информации об одной директиве ///</summary> /// <param name="flight">Директива</param> public FlightScreen(AircraftFlight flight, bool showDeffects = false, bool allView = false) : this() { if (flight == null) { throw new ArgumentNullException("flight", "Argument cannot be null"); } _showDeffects = showDeffects; if (flight.AircraftId > 0) { _currentFlight = flight; CurrentAircraft = GlobalObjects.AircraftsCore.GetAircraftById(flight.AircraftId); } else { throw new ArgumentException("flight.AircraftId cannot be 0", "flight"); } if (allView) { UpdateControls(); } AnimatedThreadWorker.DoWork -= AnimatedThreadWorkerDoWork; AnimatedThreadWorker.DoWork -= AnimatedThreadWorkerDoWorkWithCreateFlight; AnimatedThreadWorker.DoWork += AnimatedThreadWorkerDoWork; }
public void ImportFlights() { var env = GetEnviroment(); var codes = env.GetDictionary <AirportsCodes>().ToArray().Cast <AirportsCodes>(); var flightNums = env.GetDictionary <FlightNum>().Cast <FlightNum>().ToList(); //Экспортируем полеты в Dataset из Excel файла var ds = ExcelToDataTableUsingExcelDataReader(@"H:\AZV.xlsx", false); foreach (DataTable table in ds.Tables) { foreach (DataRow row in table.Rows) { var flight = new AircraftFlight(); flight.ATLBId = 151; flight.AircraftId = 2335; flight.DistanceMeasure = Measure.Kilometres; flight.PageNo = row[0].ToString(); flight.FlightDate = DateTime.Parse(row[1].ToString()); var flightNum = flightNums.FirstOrDefault(x => x.FullName == row[2].ToString()); if (flightNum != null) { flight.FlightNumber = flightNum; } else { var newFlightNum = new FlightNum { FullName = flight.FlightNo }; env.NewKeeper.Save(newFlightNum); flightNums.Add(newFlightNum); flight.FlightNumber = newFlightNum; } if (row[3] != null) { flight.StationFromId = codes.FirstOrDefault(c => c.ShortName.ToUpper() == row[3].ToString().Trim().ToUpper()); } if (row[4] != null) { flight.StationToId = codes.FirstOrDefault(c => c.ShortName.ToUpper() == row[4].ToString().Trim().ToUpper()); } var dateOut = DateTime.Parse(row[5].ToString()); var dateIn = DateTime.Parse(row[6].ToString()); flight.OutTime = (int)dateOut.TimeOfDay.TotalMinutes; flight.InTime = (int)dateIn.TimeOfDay.TotalMinutes; flight.TakeOffTime = flight.OutTime; flight.LDGTime = flight.InTime; env.NewKeeper.Save(flight); } } }
/// <summary> /// Создает форму для редактирования данных полета ВС /// </summary> /// <param name="aircraft">Бортовой журнал ВС</param> public AircraftFlightForm(Aircraft aircraft) { parentAircraft = aircraft; currentAircraftFlight = aircraft.ProposeNextFlight(); mode = ScreenMode.Add; InitializeComponent(); UpdateInformation(); }
/// <summary> /// Контрол редактирует данные о залитом масле для одного агрегата /// </summary> public PowerUnitRunupControl(Aircraft aircraft, AircraftFlight flight, RunUp runup) : this() { _currentAircraft = aircraft; _componentType = runup.BaseComponent.BaseComponentType; _outTime = flight.FlightDate.Date.AddMinutes(flight.OutTime); _takeOffTime = flight.FlightDate.Date.AddMinutes(flight.TakeOffTime); _landingTime = flight.FlightDate.Date.AddMinutes(flight.LDGTime); _inTime = flight.FlightDate.Date.AddMinutes(flight.InTime); AttachedObject = runup; }
/// <summary> /// Возвращает все директивы базового агрегата, самолета, или задачи созданные в рамках страницы бортжурнала /// </summary> /// <returns></returns> public DirectiveCollection GetDeferredItems(BaseComponent parentBaseComponent = null, Aircraft parentAircraft = null, AircraftFlight parentFlight = null, IEnumerable <ICommonFilter> filters = null) { if (parentAircraft == null && parentBaseComponent == null && parentFlight == null && filters == null) { throw new ArgumentNullException(); } List <DbQuery> qrs; if (parentBaseComponent != null) { qrs = DeferredItemQueries.GetSelectQuery(parentBaseComponent, filters, true); } else if (parentAircraft != null) { qrs = DeferredItemQueries.GetSelectQuery(parentAircraft.ItemId, filters, true); } else if (parentFlight != null) { qrs = DeferredItemQueries.GetSelectQuery(parentFlight, filters, true); } else { qrs = BaseQueries.GetSelectQueryWithWhereAll <DeferredItem>(filters.ToArray(), true); } var directives = new DirectiveCollection(); directives.AddRange(_loader.GetObjectListAll <DeferredItem>(qrs, true).ToArray()); if (directives.Count == 0) { return(directives); } var directiveIds = directives.Select(d => d.ItemId).ToList(); var itemsRelations = _itemsRelationsDataAccess.GetRelations(directiveIds, SmartCoreType.Directive.ItemId); if (itemsRelations.Count > 0) { foreach (var directive in directives) { directive.ItemRelations.AddRange(itemsRelations.Where(i => i.FirstItemId == directive.ItemId || i.SecondItemId == directive.ItemId)); } } return(directives); }
/// <summary> /// Возвращает все директивы базового агрегата, самолета, или задачи созданные в рамках страницы бортжурнала /// </summary> /// <returns></returns> private DirectiveCollection GetDirectives(BaseComponent parentBaseComponent, Aircraft parentAircraft, AircraftFlight parentFlight, DirectiveType directiveType) { if (parentAircraft == null && parentBaseComponent == null && parentFlight == null) { throw new ArgumentNullException(); } if (directiveType == null) { directiveType = DirectiveType.AirworthenessDirectives; } List <DbQuery> qrs; if (parentBaseComponent != null) { qrs = DirectiveQueries.GetSelectQuery(parentBaseComponent, directiveType, loadChild: true); } else if (parentAircraft != null) { qrs = DirectiveQueries.GetAircraftDirectivesSelectQuery(parentAircraft.ItemId, directiveType, loadChild: true); } else { qrs = DirectiveQueries.GetSelectQuery(parentFlight, directiveType, loadChild: true); } var directives = new DirectiveCollection(); directives.AddRange(_loader.GetObjectListAll <Directive>(qrs, true)); if (directives.Count == 0) { return(directives); } var directiveIds = directives.Select(d => d.ItemId).ToList(); var itemsRelations = _itemsRelationsDataAccess.GetRelations(directiveIds, SmartCoreType.Directive.ItemId); if (itemsRelations.Count > 0) { foreach (var directive in directives) { directive.ItemRelations.AddRange(itemsRelations.Where(i => i.FirstItemId == directive.ItemId || i.SecondItemId == directive.ItemId)); } } return(directives); }
///<summary> /// Создается объект, описывающий отображение добавления директивы /// (данный конструктор используется в DiscrepancyControl через Reflection) ///</summary> /// <param name="parentAircraft">Родительский объект, в который добавляется директива</param> ///<param name="aircraftFlight">Родительский полет, в рамках которого создается директива</param> public DeferredScreen(Aircraft parentAircraft, AircraftFlight aircraftFlight) : this() { _defferedGeneralInformation.DiscoveryDateEnabled = false; _defferedGeneralInformation.EffectiveDate = aircraftFlight.FlightDate.Date; var aircraftFrame = GlobalObjects.ComponentCore.GetBaseComponentById(parentAircraft.AircraftFrameId); _defferedItem = new DeferredItem { ParentBaseComponent = aircraftFrame, Threshold = { EffectiveDate = aircraftFlight.FlightDate.Date } }; Initialize(); }
private void buttonRegisterFlight_DisplayerRequested(object sender, ReferenceEventArgs e) { Aircraft a = currentATLB.Parent as Aircraft; if (a != null) { AircraftFlight flight = a.ProposeNextFlight(); // todo: Сергей Фролов, нужно сохранить Flight в открытом бортовом журнале (в гуях) //flight.ATLB = currentATLB; FlightDialog.Show(flight); } /*e.RequestedEntity = new DispatcheredDetailAddingScreen(currentATLB); * e.DisplayerText = currentATLB.RegistrationNumber + ". New Component";*/ e.Cancel = true; }
private void buttonOk_Click(object sender, EventArgs e) { var items = dataGridViewFlights.Rows.Cast <DataGridViewRow>().ToList(); foreach (var row in items) { var tripRecord = row.Tag as FlightTrackRecord; var includeRow = (bool)row.Cells[0].Value; if (!includeRow) { continue; } var flightNo = row.Cells[1].Value as FlightNum; var from = row.Cells[2].Tag as AirportsCodes; var to = row.Cells[3].Tag as AirportsCodes; var flightDate = (DateTime)row.Cells[4].Value; var arrival = (int)TimeSpan.Parse(row.Cells[5].Value.ToString()).TotalMinutes; var departure = (int)TimeSpan.Parse(row.Cells[6].Value.ToString()).TotalMinutes; var flight = new AircraftFlight(); flight.ParentATLB = _atlb; flight.ATLBId = _atlb.ItemId; flight.AircraftId = _currentAircraft.ItemId; GlobalObjects.AircraftFlightsCore.GetAircraftInformationToFlight(_currentAircraft.ItemId, flight); flight.DistanceMeasure = Measure.Kilometres; flight.FlightDate = flightDate; flight.FlightNumber = flightNo; flight.StationFromId = from; flight.StationToId = to; flight.TakeOffTime = arrival; flight.LDGTime = departure; flight.OutTime = arrival; flight.InTime = departure; flight.FlightAircraftCode = tripRecord.FlightAircraftCode; flight.FlightCategory = tripRecord.FlightCategory; flight.FlightType = tripRecord.FlightType; GlobalObjects.AircraftFlightsCore.AddAircraftFlight(flight); } DialogResult = DialogResult.OK; }
/// <summary> /// Возвращает строку запроса на получение всех облуживания воздушного судна /// </summary> /// <param name="aircraftId">ВС, диретивы которого необходимо получить</param> /// <param name="aircraftFlight"></param> /// <param name="filters">Фильтры для Maintenance Directives</param> /// <param name="loadChild">Загружать дочерние элементы</param> /// <param name="getDeleted">Загружать недействительные записи</param> /// <returns></returns> public static List <DbQuery> GetLastSelectQuery(int aircraftId, AircraftFlight aircraftFlight, IEnumerable <ICommonFilter> filters = null, bool loadChild = false, bool getDeleted = false) { if (aircraftFlight == null || aircraftFlight.ItemId < 0) { return(GetSelectQuery(aircraftId, filters, loadChild, getDeleted)); } string s = string.Format(@"-- не имеющие статус Closed directives.IsClosed <> 1 or -- не имеющие записей о выполнении directives.ItemId not in (Select DR.ParentId from dbo.DirectivesRecords DR where DR.IsDeleted = 0 and DR.ParentTypeId = {0}) or -- дата последнего выполения которых >= дате текущего полета при наличии статуса Closed ( directives.IsClosed = 1 and directives.ItemId in (Select top 1 DR.ParentId from dbo.DirectivesRecords DR where DR.IsDeleted = 0 and DR.ParentId = directives.ItemId and DR.ParentTypeId = {0} and DR.RecordDate >= convert(datetime, '{1}', 104) Order by DR.RecordDate desc))", SmartCoreType.Directive.ItemId, DbTypes.DbObject(aircraftFlight.FlightDate.Date)); List <ICommonFilter> allFilters = new List <ICommonFilter> { new CommonFilter <int> (Directive.AircraftFlightIdProperty, FilterType.NotEqual, new[] { 0 }), new CommonFilter <int> (Directive.AircraftFlightIdProperty, FilterType.NotEqual, new[] { aircraftFlight.ItemId }), new CommonFilter <string> (s) }; if (filters != null && filters.Count() > 0) { allFilters.AddRange(filters); } List <DbQuery> qrs = GetSelectQuery(aircraftId, allFilters, loadChild, getDeleted); return(qrs); }
/* * Перегруженные методы */ #region public static void Show(AircraftFlight Flight) /// <summary> /// Вызывает диалог редактирования объекта. /// Данный метод придется вручную переписать. /// </summary> /// <param name="Flight"></param> public static void Show(AircraftFlight Flight) { FlightDialog dlg = GetDialogByObject(Flight) as FlightDialog; if (dlg == null) { dlg = new FlightDialog(Flight); RegisterDialog(dlg); } dlg.Show(); try { dlg.Activate(); } catch { } }
/// <summary> /// Возвращает строку запроса на получение всех облуживания воздушного судна /// </summary> /// <param name="aircraftFlight">полет ВС, диретивы которого необходимо получить</param> /// <param name="filters">Фильтры для Maintenance Directives</param> /// <param name="loadChild">Загружать дочерние элементы</param> /// <param name="getDeleted">Загружать недействительные записи</param> /// <returns></returns> public static List <DbQuery> GetSelectQuery(AircraftFlight aircraftFlight, IEnumerable <ICommonFilter> filters = null, bool loadChild = false, bool getDeleted = false) { List <ICommonFilter> allFilters = new List <ICommonFilter> { new CommonFilter <int>(Directive.AircraftFlightIdProperty, aircraftFlight.ItemId) }; if (filters != null && filters.Count() > 0) { allFilters.AddRange(filters); } List <DbQuery> qrs = BaseQueries.GetSelectQueryWithWhereAll <DeferredItem>(allFilters.ToArray(), loadChild, getDeleted); return(qrs); }
/// <summary> /// Возвращает строку запроса на получение всех облуживания воздушного судна /// </summary> /// <param name="aircraftFlight">полет ВС, диретивы которого необходимо получить</param> /// <param name="directiveType">Тип загружаемых задач</param> /// <param name="filters">Фильтры для Maintenance Directives</param> /// <param name="loadChild">Загружать дочерние элементы</param> /// <param name="getDeleted">Загружать недействительные записи</param> /// <returns></returns> public static List <DbQuery> GetSelectQuery(AircraftFlight aircraftFlight, DirectiveType directiveType, ICommonFilter[] filters = null, bool loadChild = false, bool getDeleted = false) { List <ICommonFilter> allFilters = new List <ICommonFilter> { new CommonFilter <int>(Directive.AircraftFlightIdProperty, aircraftFlight.ItemId) }; if (filters != null && filters.Length > 0) { allFilters.AddRange(filters); } allFilters.Add(GetWhereStatement(directiveType)); List <DbQuery> qrs = BaseQueries.GetSelectQueryWithWhereAll <Directive>(allFilters.ToArray(), loadChild, getDeleted); return(qrs); }
///<summary> /// Создает страницу для отображения информации об одной директиве ///</summary> /// <param name="flight">Директива</param> public FlightScreenLight(AircraftFlight flight) : this() { if (flight == null) { throw new ArgumentNullException("flight", "Argument cannot be null"); } if (flight.AircraftId > 0) { _currentFlight = flight; CurrentAircraft = GlobalObjects.AircraftsCore.GetAircraftById(flight.AircraftId); } else { throw new ArgumentException("flight.AircraftId cannot be 0", "flight"); } AnimatedThreadWorker.DoWork -= AnimatedThreadWorkerDoWork; AnimatedThreadWorker.DoWork -= AnimatedThreadWorkerDoWorkWithCreateFlight; AnimatedThreadWorker.DoWork += AnimatedThreadWorkerDoWork; }
public void SmartCoreFileTest_AircraftFlight() { var enviroment = GetEnviroment(); var aircraftFlight = new AircraftFlight { AttachedFile = new AttachedFile { FileName = "AttachedFile.test" }, }; enviroment.NewKeeper.Save(aircraftFlight); Assert.IsTrue(aircraftFlight.ItemId > 0, "ItemId должен быть больше 0"); var forCheck = enviroment.NewLoader.GetObject <AircraftFlightDTO, AircraftFlight>(new Filter("ItemId", aircraftFlight.ItemId), true); enviroment.NewKeeper.Delete(aircraftFlight); Assert.IsTrue(forCheck != null, "значение не должно быть null"); Assert.AreEqual(forCheck.Files.Count, 1, "Кол-во файлов должно быть 1"); Assert.IsTrue(forCheck.AttachedFile != null); Assert.AreEqual(forCheck.AttachedFile.FileName, "AttachedFile.test"); }
protected override void AnimatedThreadWorkerDoWork(object sender, DoWorkEventArgs e) { AnimatedThreadWorker.ReportProgress(0, "load flight"); try { _currentFlight = GlobalObjects.AircraftFlightsCore.LoadFullAircraftFlightById(_currentFlight.ItemId, CurrentAircraft.ItemId); if (_currentFlight.ParentATLB == null || _currentFlight.ParentATLB.ItemId != _currentFlight.ATLBId) { _currentFlight.ParentATLB = GlobalObjects.CasEnvironment.NewLoader.GetObjectById <ATLBDTO, ATLB>(_currentFlight.ATLBId); } } catch (Exception ex) { Program.Provider.Logger.Log("Error while loading flight", ex); } if (AnimatedThreadWorker.CancellationPending) { e.Cancel = true; return; } ATLB lastAtlb = null; AircraftFlight lastAircraftFlight; _lastFlightString = "Unknown"; _lastAtlbString = "Unknown"; _flightsOnPage = 0; _flightsOnPageMax = 0; if (_currentFlight.ATLBId > 0) { lastAtlb = GlobalObjects.CasEnvironment.NewLoader.GetObjectById <ATLBDTO, ATLB>(_currentFlight.ATLBId); if (lastAtlb != null) { _lastAtlbString = lastAtlb.ATLBNo; _flightsOnPageMax = lastAtlb.PageFlightCount; } var flights = GlobalObjects.AircraftFlightsCore.GetAircraftFlightsByAircraftId(CurrentAircraft.ItemId); lastAircraftFlight = _currentFlight.ItemId <= 0 ? flights.GetLastFlightInAtlb(_currentFlight.ATLBId) : flights.GetPreviousKnownRecord(_currentFlight.FlightDate); if (lastAircraftFlight != null) { _lastFlightString = lastAircraftFlight.PageNo; _flightsOnPage = flights.GetFlightWithPageNumInAtlb(_currentFlight.PageNo, _currentFlight.ATLBId).Count; } } else { var flights = GlobalObjects.AircraftFlightsCore.GetAircraftFlightsByAircraftId(CurrentAircraft.ItemId); lastAircraftFlight = _currentFlight.ItemId <= 0 ? flights.GetLast() : flights.GetPreviousKnownRecord(_currentFlight.FlightDate); if (lastAircraftFlight != null) { _lastFlightString = lastAircraftFlight.PageNo; lastAtlb = GlobalObjects.CasEnvironment.NewLoader.GetObjectById <ATLBDTO, ATLB>(lastAircraftFlight.ATLBId); } if (lastAtlb != null) { _lastAtlbString = lastAtlb.ATLBNo; _flightsOnPageMax = lastAtlb.PageFlightCount; } } discrepancies.Clear(); discrepancies.AddRange(GlobalObjects.DiscrepanciesCore.GetDiscrepancies(CurrentAircraft).Distinct()); workpackages.Clear(); workpackages.AddRange(GlobalObjects.WorkPackageCore.GetWorkPackages(CurrentAircraft)); transferRecords.Clear(); transferRecords.AddRange(GlobalObjects.TransferRecordCore.GetTransferRecord(CurrentAircraft.ItemId)); AnimatedThreadWorker.ReportProgress(100, "Complete"); }
/// <summary> /// Диалог редактирует информацию по полету /// </summary> /// <param name="Flight"></param> protected FlightDialog(AircraftFlight Flight) : this() { AttachedObject = Flight; }
private void aircraftFlight_Saving(object sender, CancelEventArgs e) { aircraftFlightBeforeSave = (AircraftFlight)sender; }
public Lifelength GetFlightLifelength(AircraftFlight flight, BaseComponent bd, FlightRegime flightRegime) { return(_provider.GetFlightLifelengthWithRegimeBaseComponent(flight.ItemId, bd.ItemId, flightRegime.ItemId)); }
public Lifelength GetFlightLifelengthIncludingThisFlight(BaseComponent baseComponent, AircraftFlight flight) { return(_provider.GetFlightLifelengthIncludingThisFlightBaseComponent(baseComponent.ItemId, flight.ItemId)); }
private void _animatedThreadWorker_DoLoadFlight(object sender, DoWorkEventArgs e) { aircraftFlightEdit = GlobalObjects.CasEnvironment.NewLoader.GetObject <AircraftFlightDTO, AircraftFlight>(new List <Filter>() { new Filter("AircraftId", _currentAircraft.ItemId), new Filter("FlightNumberId", _planOpsRecord.FlightTrackRecord.FlightNo.ItemId), new Filter("StationFromId", _planOpsRecord.FlightTrackRecord.StationFrom.ItemId), new Filter("StationToId", _planOpsRecord.FlightTrackRecord.StationTo.ItemId), new Filter("FlightDate", _planOpsRecord.Date) }); if (aircraftFlightEdit != null) { aircraftFlightEdit.ParentATLB = GlobalObjects.CasEnvironment.NewLoader.GetObjectById <ATLBDTO, ATLB>(aircraftFlightEdit.ATLBId); aircraftFlightEdit.Document = GlobalObjects.CasEnvironment.NewLoader.GetObject <DocumentDTO, Document>(new List <Filter> { new Filter("ParentID", aircraftFlightEdit.ItemId), new Filter("ParentTypeId", SmartCoreType.AircraftFlight.ItemId) }, true); } else { var atlb = GlobalObjects.AircraftFlightsCore.GetATLBsByAircraftId(_currentAircraft.ItemId).FirstOrDefault(a => a.AtlbStatus == AtlbStatus.Opened); aircraftFlightEdit = new AircraftFlight(); aircraftFlightEdit.ParentATLB = atlb; aircraftFlightEdit.ATLBId = atlb.ItemId; aircraftFlightEdit.AircraftId = _currentAircraft.ItemId; aircraftFlightEdit.PageNo = GlobalObjects.AircraftFlightsCore.GetNextPageNoFromAtlb(atlb.ItemId, _currentAircraft.ItemId); //Если полет Schedule то берем дату на день прогноза, если Unschedule то берем дату вылета if (_planOpsRecord.FlightTrackRecord.FlightType == FlightType.Schedule) { aircraftFlightEdit.FlightDate = _planOpsRecord.Date; } else { aircraftFlightEdit.FlightDate = _planOpsRecord.FlightTrackRecord.FlightNumberPeriod.DepartureDate; } aircraftFlightEdit.DistanceMeasure = Measure.Kilometres; aircraftFlightEdit.FlightNumber = _planOpsRecord.FlightTrackRecord.FlightNo; aircraftFlightEdit.StationFromId = _planOpsRecord.FlightTrackRecord.StationFrom; aircraftFlightEdit.StationToId = _planOpsRecord.FlightTrackRecord.StationTo; aircraftFlightEdit.FlightAircraftCode = _planOpsRecord.FlightTrackRecord.FlightAircraftCode; aircraftFlightEdit.FlightCategory = _planOpsRecord.FlightTrackRecord.FlightCategory; aircraftFlightEdit.FlightType = _planOpsRecord.FlightTrackRecord.FlightType; if (_planOpsRecord.IsDispatcherEditLdg) { aircraftFlightEdit.LDGTime = (int)dateTimePickerLDGD.Value.TimeOfDay.TotalMinutes; } else { aircraftFlightEdit.LDGTime = _planOpsRecord.FlightTrackRecord.FlightNumberPeriod.PeriodTo; } if (_planOpsRecord.IsDispatcherEdit) { aircraftFlightEdit.TakeOffTime = (int)dateTimePickerTakeOffD.Value.TimeOfDay.TotalMinutes; } else { aircraftFlightEdit.TakeOffTime = _planOpsRecord.FlightTrackRecord.FlightNumberPeriod.PeriodFrom; } } }
public Lifelength GetFlightLifelength(AircraftFlight flight, BaseComponent bd) { return(_provider.GetFlightLifelengthBaseComponent(flight.ItemId, bd.ItemId)); }
private void AnimatedThreadWorkerDoWorkWithCreateFlight(object sender, DoWorkEventArgs e) { AnimatedThreadWorker.ReportProgress(0, "create flight"); _currentFlight = new AircraftFlight(); //создание нового объекта полета if (AnimatedThreadWorker.CancellationPending) { e.Cancel = true; return; } AnimatedThreadWorker.ReportProgress(30, "loading information to flight"); ATLB lastAtlb; if (CurrentAircraft != null) { if (_currentAtlb != null) { _currentFlight.ATLBId = _currentAtlb.ItemId; //присваивание идентификатора бортового журнала _currentFlight.AttachedFile = _currentAtlb.AttachedFile; //присваивание идентификатора файла бортового журнала _currentFlight.ParentATLB = _currentAtlb; //присваивание обратной ссылки на объект бортового журнала } else { var lastFlight = GlobalObjects.AircraftFlightsCore.GetLastAircraftFlight(CurrentAircraft.ItemId); lastAtlb = lastFlight != null ? GlobalObjects.CasEnvironment.NewLoader.GetObjectById <ATLBDTO, ATLB>(lastFlight.ATLBId) : null; if (lastAtlb != null) { _currentFlight.ATLBId = lastAtlb.ItemId; //присваивание идентификатора бортового журнала _currentFlight.AttachedFile = lastAtlb.AttachedFile; //присваивание идентификатора файла бортового журнала _currentFlight.ParentATLB = lastAtlb; //присваивание обратной ссылки на объект бортового журнала } } _currentFlight.AircraftId = CurrentAircraft.ItemId; //присваивание обратной на родительский самолет //загрузка данных Воздушного судно в объект полета try { GlobalObjects.AircraftFlightsCore.GetAircraftInformationToFlight(CurrentAircraft.ItemId, _currentFlight); } catch (Exception ex) { Program.Provider.Logger.Log("Error while loading flight on Aircrat: " + CurrentAircraft, ex); } lastAtlb = null; AircraftFlight lastAircraftFlight; _lastFlightString = "Unknown"; _lastAtlbString = "Unknown"; _flightsOnPage = 0; _flightsOnPageMax = 0; if (_currentFlight.ATLBId > 0) { lastAtlb = GlobalObjects.CasEnvironment.NewLoader.GetObjectById <ATLBDTO, ATLB>(_currentFlight.ATLBId); if (lastAtlb != null) { _lastAtlbString = lastAtlb.ATLBNo; _flightsOnPageMax = lastAtlb.PageFlightCount; } var flights = GlobalObjects.AircraftFlightsCore.GetAircraftFlightsByAircraftId(CurrentAircraft.ItemId); lastAircraftFlight = _currentFlight.ItemId <= 0 ? flights.GetLastFlightInAtlb(_currentFlight.ATLBId) : flights.GetPreviousKnownRecord(_currentFlight.FlightDate); if (lastAircraftFlight != null) { _lastFlightString = lastAircraftFlight.PageNo; _flightsOnPage = flights.GetFlightWithPageNumInAtlb(_currentFlight.PageNo, _currentFlight.ATLBId).Count; } } else { var flights = GlobalObjects.AircraftFlightsCore.GetAircraftFlightsByAircraftId(CurrentAircraft.ItemId); lastAircraftFlight = _currentFlight.ItemId <= 0 ? flights.GetLast() : flights.GetPreviousKnownRecord(_currentFlight.FlightDate); if (lastAircraftFlight != null) { _lastFlightString = lastAircraftFlight.PageNo; lastAtlb = GlobalObjects.CasEnvironment.NewLoader.GetObjectById <ATLBDTO, ATLB>(lastAircraftFlight.ATLBId); } if (lastAtlb != null) { _lastAtlbString = lastAtlb.ATLBNo; _flightsOnPageMax = lastAtlb.PageFlightCount; } } } if (AnimatedThreadWorker.CancellationPending) { e.Cancel = true; return; } discrepancies.Clear(); discrepancies.AddRange(GlobalObjects.DiscrepanciesCore.GetDiscrepancies(CurrentAircraft).Distinct()); workpackages.Clear(); workpackages.AddRange(GlobalObjects.WorkPackageCore.GetWorkPackages(CurrentAircraft)); transferRecords.Clear(); transferRecords.AddRange(GlobalObjects.TransferRecordCore.GetTransferRecord(CurrentAircraft.ItemId)); AnimatedThreadWorker.ReportProgress(100, "Complete"); }
public Lifelength GetFlightLifelengthIncludingThisFlight(AircraftFlight flight) { return(_provider.GetFlightLifelengthIncludingThisFlightCalculator(flight.ItemId)); }
/// <summary> /// Возвращает все директивы базового агрегата, самолета, или задачи созданные в рамках страницы бортжурнала /// </summary> /// <returns></returns> private DirectiveCollection GetDirectives(BaseComponent parentBaseComponent, Aircraft parentAircraft, AircraftFlight parentFlight, DirectiveType directiveType) { if (parentAircraft == null && parentBaseComponent == null && parentFlight == null) { throw new ArgumentNullException(); } if (directiveType == null) { directiveType = DirectiveType.AirworthenessDirectives; } List <DbQuery> qrs; if (parentBaseComponent != null) { qrs = DirectiveQueries.GetSelectQuery(parentBaseComponent, directiveType, loadChild: true); } else if (parentAircraft != null) { qrs = DirectiveQueries.GetAircraftDirectivesSelectQuery(parentAircraft.ItemId, directiveType, loadChild: true); } else { qrs = DirectiveQueries.GetSelectQuery(parentFlight, directiveType, loadChild: true); } var directives = new DirectiveCollection(); directives.AddRange(_loader.GetObjectListAll <Directive>(qrs, true)); if (directives.Count == 0) { return(directives); } var directiveIds = directives.Select(d => d.ItemId).ToList(); var itemsRelations = _itemsRelationsDataAccess.GetRelations(directiveIds, SmartCoreType.Directive.ItemId); var mpdCompRelations = _itemsRelationsDataAccess.GetCustomRelations(itemsRelations.Select(i => i.FirstItemId).Concat(itemsRelations.Select(i => i.SecondItemId)), SmartCoreType.ComponentDirective.ItemId); if (itemsRelations.Count > 0) { foreach (var directive in directives) { directive.ItemRelations.AddRange(itemsRelations.Where(i => i.FirstItemId == directive.ItemId || i.SecondItemId == directive.ItemId)); var mpdLink = directive.ItemRelations.FirstOrDefault(i => i.FirtsItemTypeId == SmartCoreType.MaintenanceDirective.ItemId || i.SecondItemTypeId == SmartCoreType.MaintenanceDirective.ItemId); if (mpdLink != null) { var mpdId = mpdLink.FirtsItemTypeId == SmartCoreType.MaintenanceDirective.ItemId ? mpdLink.FirstItemId : mpdLink.SecondItemId; var mpdComLink = mpdCompRelations.FirstOrDefault(i => i.FirstItemId == mpdId || i.SecondItemId == mpdId); directive.LinkComp = mpdComLink?.AdditionalInformation?.Component; } } } return(directives); }
private bool ItWasRealFlight(AircraftFlight flight) { return(flight.AtlbRecordType == AtlbRecordType.Flight && flight.CancelReason == null); }