Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        /// <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);
        }