private ListViewItem GetListViewItem(MaintenanceCheckRecordGroup grouping) { string name = "N/A"; string type = "N/A"; string resource = "N/A"; string group = "N/A"; string num = "N/A"; string recordDate = "N/A"; string performanceSource = "N/A"; string remarksString = "N/A"; Color backColor = Color.White; if (grouping.Records.Count > 0) { grouping.Sort(); MaintenanceCheckRecord mcr = grouping.LastOrDefault(); MaintenanceCheck mc = grouping.GetMaxIntervalCheck(); type = mc.Schedule ? " (Schedule) " : " (Store) "; resource = mc.Resource.ToString(); group = mc.Grouping ? " (Group)" : ""; backColor = mc.Schedule ? Color.White : Color.Gainsboro; if (mcr != null) { num = mc.Grouping ? mcr.NumGroup.ToString() : "N/A"; name = _currentAircraft != null && _currentAircraft.MaintenanceProgramCheckNaming ? (!string.IsNullOrEmpty(grouping.First().ComplianceCheckName) ? mcr.ComplianceCheckName : mc.Name) : mc.Name; recordDate = UsefulMethods.NormalizeDate(mcr.RecordDate); performanceSource = mcr.OnLifelength.ToRepeatIntervalsFormat(); remarksString = mcr.Remarks; if (mc.Grouping) { MaintenanceProgramChangeRecord mpcr = mc.ParentAircraft != null ? mc.ParentAircraft.MaintenanceProgramChangeRecords. GetLastKnownRecord(Convert.ToDateTime(mcr.RecordDate)) : null; if (mpcr == null || mpcr.MSG < MSG.MSG3) { var complianceItems = from compliance in grouping orderby compliance.OnLifelength.Hours descending select compliance; name += " (" + complianceItems.Aggregate("", (current, compliance) => current + (compliance.ParentCheck.Name + " ")) + ")"; } } } } ListViewItem listViewItem = new ListViewItem(num + type + resource + group) { Tag = grouping.ToList(), Group = listViewCompliance.Groups["last"], BackColor = backColor }; listViewItem.SubItems.Add(name); listViewItem.SubItems.Add(recordDate); listViewItem.SubItems.Add(performanceSource); listViewItem.SubItems.Add(remarksString); return(listViewItem); }
/// <summary> /// ??????????? ??????? ? ??????? ?????? /// </summary> /// <param name="grouping">?????????? ?????????</param> /// <param name="destinationDataSet">???????, ? ??????? ??????????? ???????</param> private void AddItemDataset(MaintenanceCheckRecordGroup grouping, OperationTimeDataSet destinationDataSet) { if (grouping == null) { return; } string checkName = ""; string performanceSourceHours = ""; string performanceSourceCycles = ""; string station = ""; string checkStartEndString = ""; if (grouping.Records.Count > 0) { grouping.Sort(); MaintenanceCheckRecord mcr = grouping.LastOrDefault(); MaintenanceCheck mc = grouping.GetMaxIntervalCheck(); if (mcr != null) { checkName = _currentAircraft != null && _currentAircraft.MaintenanceProgramCheckNaming ? (!string.IsNullOrEmpty(grouping.First().ComplianceCheckName) ? mcr.ComplianceCheckName : mc.Name) : mc.Name; performanceSourceHours = mcr.OnLifelength.ToHoursMinutesFormat(""); performanceSourceCycles = mcr.OnLifelength.Cycles != null?mcr.OnLifelength.Cycles.ToString() : ""; if (mcr.DirectivePackage == null) { mcr.DirectivePackage = _workPackages != null ? _workPackages.FirstOrDefault(wp => wp.ItemId == mcr.DirectivePackageId) : null; } if (mcr.DirectivePackage != null) { if (mcr.DirectivePackage.Status == WorkPackageStatus.Published) { checkStartEndString = mcr.DirectivePackage.PublishingDate.ToString(new GlobalTermsProvider()["DateFormat"].ToString()); checkStartEndString += " - Present day"; } if (mcr.DirectivePackage.Status == WorkPackageStatus.Closed) { checkStartEndString = mcr.DirectivePackage.PublishingDate.ToString(new GlobalTermsProvider()["DateFormat"].ToString()); checkStartEndString += " - " + mcr.DirectivePackage.ClosingDate.ToString(new GlobalTermsProvider()["DateFormat"].ToString()); } station = mcr.DirectivePackage.Station; } else { checkStartEndString = mcr.RecordDate.ToString(new GlobalTermsProvider()["DateFormat"].ToString()); station = "--"; } } } var sinceLastCCheckHours = "--"; var sinceLastCCheckCycles = "--"; //TODO:???????????? ?????? //if(_lastC?heckRecord != null && // _aircraftBaseDetails != null && // _aircraftBaseDetails.FirstOrDefault(bd => bd.BaseComponentType == BaseComponentType.Frame) != null) //{ // BaseComponent frame = _aircraftBaseDetails.First(bd => bd.BaseComponentType == BaseComponentType.Frame); // Lifelength current = GlobalObjects.CasEnvironment.Calculator.GetFlightLifelengthOnEndOfDay(frame, grouping.LastOrDefault() != null ? grouping.Last().RecordDate : DateTime.Today); // Lifelength sinceLast = current - _lastC?heckRecord.OnLifelength; // sinceLastCCheckHours = sinceLast.TotalMinutes != null ? sinceLast.ToHoursMinutesFormat("") : ""; // sinceLastCCheckCycles = sinceLast.Cycles != null ? sinceLast.Cycles.ToString() : ""; //} destinationDataSet.MaintenanceTable.AddMaintenanceTableRow(checkName, checkStartEndString, station, performanceSourceHours, performanceSourceCycles, sinceLastCCheckHours, sinceLastCCheckCycles); }