Esempio n. 1
0
        /// <summary>
        /// Добавляется элемент в таблицу данных
        /// </summary>
        /// <param name="aircraft">Добавлямое ВС</param>
        /// <param name="destinationDataSet">Таблица, в которую добавляется элемент</param>
        public virtual void AddAircraftToDataset(Aircraft aircraft, DirectiveListReportDataSet destinationDataSet)
        {
            DirectiveListReportDataSet.OperatorTableRow operatorId = destinationDataSet.OperatorTable.FindByOperatorID(aircraft.Parent.ID);
            string model                 = aircraft.Model;
            string serialNumber          = aircraft.SerialNumber;
            string manufactureDate       = aircraft.ManufactureDate.ToString("MMM dd, yyyy");
            string SinceNewHours         = lifelengthFormatter.GetHoursData(aircraft.Limitation.ResourceSinceNew.Hours).Trim();
            string sinceNewCycles        = aircraft.Limitation.ResourceSinceNew.Cycles.ToString().Trim();
            string sinceNewCalendar      = lifelengthFormatter.GetCalendarData(aircraft.Limitation.ResourceSinceNew.Calendar).Trim();
            string SinceOverhaulHours    = lifelengthFormatter.GetHoursData(aircraft.Limitation.ResourceSinceOverhaul.Hours).Trim();
            string sinceOverhaulCycles   = aircraft.Limitation.ResourceSinceOverhaul.Cycles.ToString().Trim();
            string sinceOverhaulCalendar = lifelengthFormatter.GetCalendarData(aircraft.Limitation.ResourceSinceOverhaul.Calendar).Trim();
            string registrationNumber    = aircraft.RegistrationNumber;
            string lineNumber            = "-";
            string variableNumber        = "-";

            if (aircraft is WestAircraft)
            {
                lineNumber     = ((WestAircraft)aircraft).LineNumber;
                variableNumber = ((WestAircraft)aircraft).VariableNumber;
            }
            destinationDataSet.BaseDetailTable.AddBaseDetailTableRow(operatorId, aircraft.ID, serialNumber,
                                                                     manufactureDate, model, SinceNewHours, sinceNewCycles, sinceNewCalendar, SinceOverhaulHours, sinceOverhaulCycles, sinceOverhaulCalendar, registrationNumber, lineNumber, variableNumber);
        }
        private void AddDetailDirectiveToDatatSet(string number, string mpdItem, string partNumber, string description, string serialNumber, string positionNumber, string installationDate, string installationTsncsn, string currentTsncsn, ComponentDirective directive, AtaChapter ataChapter, DetailListDataSet destinationDataSet)
        {
            var workType             = directive.DirectiveType.ShortName;
            var lastComplianceTsncsn = "";
            var lastComplianceDate   = "";
            var nextDate             = "";

            GlobalObjects.PerformanceCalculator.GetNextPerformance(directive);
            var nextTsncsn = LifelengthFormatter.GetHoursData(directive.NextPerformanceSource, " hrs\r\n") + LifelengthFormatter.GetCyclesData(directive.NextPerformanceSource, " cyc\r\n");

            if (directive.NextPerformanceDate != null)
            {
                nextDate = ((DateTime)directive.NextPerformanceDate).ToString(new GlobalTermsProvider()["DateFormat"].ToString());
            }
            var remains = LifelengthFormatter.GetCalendarData(directive.Remains, " d\r\n") + LifelengthFormatter.GetHoursData(directive.Remains, " h\r\n") + LifelengthFormatter.GetCyclesData(directive.Remains, " c\r\n");

            if (remains == "")
            {
                nextDate   = "";
                nextTsncsn = "";
            }
            var directiveRemarks = "";

            if (directive.LastPerformance != null)
            {
                var lastComplianceTsncsnlLifelength = directive.LastPerformance.OnLifelength;
                lastComplianceTsncsn = LifelengthFormatter.GetHoursData(lastComplianceTsncsnlLifelength, " hrs\r\n") + LifelengthFormatter.GetCyclesData(lastComplianceTsncsnlLifelength, " cyc\r\n");
                lastComplianceDate   = directive.LastPerformance.RecordDate.ToString(new GlobalTermsProvider()["DateFormat"].ToString());
                directiveRemarks     = directive.LastPerformance.Remarks;
            }

            var condition = directive.Condition.ToString();

            destinationDataSet.ItemsTable.AddItemsTableRow(number,
                                                           ataChapter.ShortName, ataChapter.FullName, partNumber, description,
                                                           serialNumber, positionNumber,
                                                           "",
                                                           installationDate,
                                                           lastComplianceTsncsn,
                                                           lastComplianceDate,
                                                           workType, nextTsncsn,
                                                           nextDate,
                                                           "",
                                                           "", condition, "", remains, "", "", "", "", mpdItem, installationTsncsn,
                                                           directiveRemarks, currentTsncsn);
        }
        /// <summary>
        /// Добавляется элемент в таблицу данных
        /// </summary>
        /// <param name="componentобавляемый агрегат</param>
        /// <param name="previousNumber">Порядковый номер агрегата</param>
        /// <param name="destinationDataSet">Таблица, в которую добавляется элемент</param>
        protected override void AddDetailToDataset(Component component, ref int previousNumber, DetailListDataSet destinationDataSet)
        {
            Lifelength remainsLifelength;
            Lifelength current;
            DateTime?  nextDateTime;

            var ataChapter             = component.ATAChapter;
            var atachapter             = ataChapter.ShortName;
            var atachapterfull         = ataChapter.FullName;
            var partNumber             = component.PartNumber;
            var description            = component.Description;
            var serialNumber           = component.SerialNumber;
            var lastTransferRecord     = component.TransferRecords.GetLast();
            var positionNumber         = lastTransferRecord.Position;
            var instalationDateTime    = lastTransferRecord.TransferDate;
            var installationLifelength = lastTransferRecord.OnLifelength;
            var remarks          = component.Remarks;
            var lifeLimit        = component.LifeLimit;
            var mpdItem          = component.MPDItem;
            var detailDirectives = new List <ComponentDirective>(component.ComponentDirectives.ToArray());

            GlobalObjects.PerformanceCalculator.GetNextPerformance(component);
            current           = GlobalObjects.CasEnvironment.Calculator.GetCurrentFlightLifelength((BaseEntityObject)component);
            nextDateTime      = component.NextPerformanceDate;
            remainsLifelength = component.Remains;

            var instalationDate    = UsefulMethods.NormalizeDate(instalationDateTime);
            var installationTsncsn = LifelengthFormatter.GetHoursData(installationLifelength, " hrs\r\n") +
                                     LifelengthFormatter.GetCyclesData(installationLifelength, " cyc\r\n");
            var currentTsncsn = LifelengthFormatter.GetHoursData(current, " hrs\r\n") +
                                LifelengthFormatter.GetCyclesData(current, " cyc\r\n");
            var condition = UsefulMethods.GetColorName(component);
            var nextDate  = nextDateTime != null
                                  ? ((DateTime)nextDateTime).ToString(new GlobalTermsProvider()["DateFormat"].ToString())
                                  : "";
            var componentNumber = (previousNumber++).ToString();

            if (lifeLimit != Lifelength.Null)
            {
                var workType   = "RMV";
                var nextTsncsn = LifelengthFormatter.GetHoursData(lifeLimit, " hrs\r\n") +
                                 LifelengthFormatter.GetCyclesData(lifeLimit, " cyc\r\n");
                var remains = LifelengthFormatter.GetCalendarData(remainsLifelength, " d\r\n") +
                              LifelengthFormatter.GetHoursData(remainsLifelength, " h\r\n") +
                              LifelengthFormatter.GetCyclesData(remainsLifelength, " c\r\n");
                if (remains == "")
                {
                    nextDate   = "";
                    nextTsncsn = "";
                }
                destinationDataSet.ItemsTable.AddItemsTableRow(componentNumber, atachapter, atachapterfull, partNumber, description, serialNumber, positionNumber, "", instalationDate, "", "", workType, nextTsncsn, nextDate, remains, "", condition, "", "", "", "", "", "", mpdItem, installationTsncsn, remarks, currentTsncsn);
                foreach (ComponentDirective t in detailDirectives)
                {
                    AddDetailDirectiveToDatatSet("", "", "", "", "", "", "", "", "", t, ataChapter, destinationDataSet);
                }
            }
            else if (detailDirectives.Count > 0)
            {
                AddDetailDirectiveToDatatSet(componentNumber, mpdItem, partNumber, description, serialNumber, positionNumber, instalationDate, installationTsncsn, currentTsncsn, detailDirectives[0], ataChapter, destinationDataSet);
                for (int i = 1; i < detailDirectives.Count; i++)
                {
                    AddDetailDirectiveToDatatSet("", "", "", "", "", "", "", "", "", detailDirectives[i], ataChapter, destinationDataSet);
                }
            }
            else
            {
                destinationDataSet.ItemsTable.AddItemsTableRow(componentNumber, atachapter, atachapterfull, partNumber, description, serialNumber, positionNumber, "", instalationDate, "", "", "", "", "", "", "", condition, "", "", "", "", "", "", mpdItem, installationTsncsn, remarks, currentTsncsn);
            }
        }