Ejemplo n.º 1
0
        private void HeaderControlButtonSaveAndAddClick(object sender, EventArgs e)
        {
            string message;

            if (!ValidateData(out message))
            {
                message += "\nAbort operation";
                MessageBox.Show(message, (string)new GlobalTermsProvider()["SystemName"],
                                MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            if (GetChangeStatus())
            {
                SaveData(false);
            }

            if (MessageBox.Show("Directive added successfully" + "\nClear Fields before add new directive?",
                                new GlobalTermsProvider()["SystemName"].ToString(),
                                MessageBoxButtons.YesNo, MessageBoxIcon.Information, MessageBoxDefaultButton.Button2) == DialogResult.Yes)
            {
                ClearFields();
            }
            else
            {
                SetFieldsUnsaved();
            }

            BaseComponent bd = _defferedItem.ParentBaseComponent;

            _defferedItem = new DeferredItem {
                ParentBaseComponent = bd
            };
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Создает объект отображающий краткую информацию о директиве
        /// </summary>
        /// <param name="currentDefferedItem"></param>
        public DefferedSummary(DeferredItem currentDefferedItem)
        {
            InitializeComponent();

            _currentDefferedItem = currentDefferedItem;

            UpdateInformation();
        }
Ejemplo n.º 3
0
        ///<summary>
        /// Создает страницу для отображения информации об одной директиве
        ///</summary>
        /// <param name="directive">Директива</param>
        public DeferredScreen(DeferredItem directive) : this()
        {
            if (directive == null)
            {
                throw new ArgumentNullException("directive", "Argument cannot be null");
            }

            _defferedItem = directive;

            Initialize();
        }
Ejemplo n.º 4
0
        ///<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();
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Добавляется элемент в таблицу данных
        /// </summary>
        /// <param name="directive">Добавлямая директива</param>
        /// <param name="destinationDataSet">Таблица, в которую добавляется элемент</param>
        private void AddDirectiveToDataset(DeferredItem directive, DefferedListDataSet destinationDataSet)
        {
            GlobalObjects.PerformanceCalculator.GetNextPerformance(directive);
            string category = directive.DeferredCategory != null?directive.DeferredCategory.ToString() : "N/A";

            string discoveryDate = directive.Threshold.EffectiveDate.ToString(new GlobalTermsProvider()["DateFormat"].ToString());
            string nextDate      = directive.NextPerformanceDate != null
                ? ((DateTime)directive.NextPerformanceDate).ToString(new GlobalTermsProvider()["DateFormat"].ToString())
                : (directive.LastPerformance != null
                    ? directive.LastPerformance.RecordDate.ToString(new GlobalTermsProvider()["DateFormat"].ToString())
                    :"");

            string interval = directive.LastPerformance != null
                ? (directive.NextPerformanceDate != null
                    ? directive.Threshold.RepeatInterval.Days.ToString()
                    : directive.Threshold.FirstPerformanceSinceEffectiveDate.Days.ToString())
                : directive.Threshold.FirstPerformanceSinceEffectiveDate.Days.ToString();

            string lastCompliance = directive.LastPerformance != null
                ? directive.LastPerformance.RecordDate.ToString(new GlobalTermsProvider()["DateFormat"].ToString())
                : "";

            string status = "";

            if (directive.Status == DirectiveStatus.Closed ||
                directive.Status == DirectiveStatus.Open ||
                directive.Status == DirectiveStatus.Repetative ||
                directive.Status == DirectiveStatus.NotApplicable)
            {
                status = directive.Status.ShortName;
            }

            string condition = directive.Condition.ToString();

            string remarks = directive.LastPerformance != null ? directive.LastPerformance.Remarks : "";

            destinationDataSet.ItemsTable.AddItemsTableRow(directive.DeferredLogBookRef,
                                                           directive.DeferredMelCdlItem,
                                                           directive.Description,
                                                           category,
                                                           directive.DeferredExtention,
                                                           condition,
                                                           status,
                                                           discoveryDate,
                                                           interval,
                                                           nextDate,
                                                           lastCompliance,
                                                           remarks);
        }
Ejemplo n.º 6
0
        ///<summary>
        /// Создает страницу для отображения информации об одной директиве
        /// <br/> Производя загрузку директивы с заданным ID
        ///</summary>
        /// <param name="defferedItemId">ID директивы, которую необходимо загрузить</param>
        public DeferredScreen(int defferedItemId) : this()
        {
            if (defferedItemId <= 0)
            {
                throw new ArgumentException("must be >= 1", "defferedItemId");
            }

            try
            {
                _defferedItem = GlobalObjects.CasEnvironment.NewLoader.GetObject <DirectiveDTO, DeferredItem>(new List <Filter>()
                {
                    new Filter("ItemId", defferedItemId),
                    new Filter("DirectiveType", 5)
                }, true);

                if (_defferedItem != null)
                {
                    //обновление нижней шапки(через базовый скрин)
                    CurrentAircraft = GlobalObjects.AircraftsCore.GetAircraftById(_defferedItem.ParentBaseComponent.ParentAircraftId);//TODO:(Evgenii Babak) пересмотреть использование ParentAircrafId здесь
                    statusControl.ConditionState = GlobalObjects.PerformanceCalculator.GetConditionState(_defferedItem);

                    //обновление суммарной информацию по директиве и суммарной информации по её подзадачам
                    string summaryCaptionText = _defferedItem.Status.ToString();
                    extendableRichContainerSummary.LabelCaption.Text =
                        "Summary " + _defferedItem.Title +
                        " Category: " + _defferedItem.DeferredCategory +
                        " Status: " + summaryCaptionText;
                }
                else
                {
                    //обновление нижней шапки(через базовый скрин)
                    statusControl.ConditionState = ConditionState.NotEstimated;
                    //обновление суммарной информацию по директиве и суммарную информацию по её подзадачам
                    string summaryCaptionText = DirectiveStatus.Closed.ToString();
                    extendableRichContainerSummary.LabelCaption.Text =
                        "Summary: Can't find item with id = " + defferedItemId +
                        " Status: " + summaryCaptionText;
                }
            }
            catch (Exception ex)
            {
                Program.Provider.Logger.Log("Error while load deffered Item with id = " + defferedItemId, ex);
            }

            StatusTitle = "Deffered Status";

            _defferedGeneralInformation.comboBoxDefferedCategory.SelectedIndexChanged += ComboBoxDefferedCategorySelectedIndexChanged;
        }
Ejemplo n.º 7
0
        ///<summary>
        /// Создает экземпляр класса для отображения информации о директиве
        ///</summary>
        ///<param name="currentDirective"></param>
        public DefferedGeneralInformationControl(DeferredItem currentDirective)
        {
            if (null == currentDirective)
            {
                throw new ArgumentNullException("currentDirective", "Argument cannot be null");
            }
            _currentDefferedItem = currentDirective;
            InitializeComponent();
            ataChapterComboBox.UpdateInformation();

            AttachedFile adNoFile = null;

            if (currentDirective.ADNoFile != null)
            {
                adNoFile = currentDirective.ADNoFile;
            }
            fileControlADNo.UpdateInfo(adNoFile, "Adobe PDF Files|*.pdf",
                                       "This record does not contain a file proving the AD No. Enclose PDF file to prove the compliance.",
                                       "Attached file proves the AD No.");

            AttachedFile sbFile = null;

            if (currentDirective.ServiceBulletinFile != null)
            {
                sbFile = currentDirective.ServiceBulletinFile;
            }
            fileControlSB.UpdateInfo(sbFile, "Adobe PDF Files|*.pdf",
                                     "This record does not contain a file proving the Service bulletin. Enclose PDF file to prove the compliance.",
                                     "Attached file proves the Service bulletin.");
            AttachedFile eoFile = null;

            if (currentDirective.EngineeringOrderFile != null)
            {
                eoFile = currentDirective.EngineeringOrderFile;
            }
            fileControlEO.UpdateInfo(eoFile, "Adobe PDF Files|*.pdf",
                                     "This record does not contain a file proving the Engineering order. Enclose PDF file to prove the compliance.",
                                     "Attached file proves the Engineering order.");
        }
Ejemplo n.º 8
0
        ///<summary>
        /// Создается объект, описывающий отображение добавления директивы
        ///</summary>
        /// <param name="directiveContainer">Родительский объект, в который добавляется директива</param>
        public DeferredScreen(BaseEntityObject directiveContainer) : this()
        {
            if (directiveContainer == null)
            {
                throw new ArgumentNullException("directiveContainer");
            }

            if (directiveContainer is BaseComponent)
            {
                var baseDetail = (BaseComponent)directiveContainer;
                _defferedItem = new DeferredItem {
                    ParentBaseComponent = baseDetail
                };
            }
            else
            {
                var aircraftFrame = GlobalObjects.ComponentCore.GetBaseComponentById(((Aircraft)directiveContainer).AircraftFrameId);
                _defferedItem = new DeferredItem {
                    ParentBaseComponent = aircraftFrame
                };
            }
            Initialize();
        }
Ejemplo n.º 9
0
        /// <summary>
        /// Добавляется элемент CpcpItem в таблицу данных
        /// </summary>
        /// <param name="defferedItem">Добавлямая директива</param>
        /// <param name="destinationDataSet">Таблица, в которую добавляется элемент</param>
        public void AddDefferedItemToDataset(DeferredItem defferedItem, ForecastListDataSet destinationDataSet)
        {
            //Lifelength nextPerform;
            //Lifelength remain;
            //ConditionState conditionState;
            //DateTime? approx;
            //GlobalObjects.CasEnvironment.Calculator.GetNextPerformance((DefferedItem)defferedItem,
            //                                                            out nextPerform, out remain, out approx,
            //                                                            out conditionState);

            //string ataCapter = defferedItem.ATAChapter.ToString();
            //string DefferenceNumber = defferedItem.References;
            //string subject = defferedItem.Subject;
            //string lastPerformance = defferedItem.LastPerformance.ToString();
            //string overdue = defferedItem.NextPerformance.ToString();
            //double mansHours = defferedItem.ManHours;
            //double cost = defferedItem.Cost;
            ////     ((DefferedItem)item).LastPerformance == null ? "" : ((DefferedItem)item).LastPerformance.ToString(),
            ////      remain == null ? "" : remain.ToString();
            ////              "Work Type",
            ////      approx == null ? "" : SmartCore.Auxiliary.Convert.GetDateFormat((DateTime) approx);
            ////             ((DefferedItem)item).ManHours.ToString(),
            ////              ((DefferedItem)item).Cost.ToString()
            //string approxDate = SmartCore.Auxiliary.Convert.GetDateFormat((DateTime)approx);

            //Aircraft parentAircraft = defferedItem.ParentAircraft;
            //string groupName = "DefferedItem";

            //string aircraftRegAndFrameSN = parentAircraft.RegistrationNumber + " | " +
            //                               parentAircraft.Frame.ToString() + " | " + groupName;
            //destinationDataSet.
            //    Items.
            //        AddItemsRow(ataCapter, DefferenceNumber, subject, "Work Type",
            //                    mansHours, groupName, cost, overdue, approxDate, lastPerformance,
            //                    aircraftRegAndFrameSN);
        }
Ejemplo n.º 10
0
        protected override void AnimatedThreadWorkerDoWork(object sender, DoWorkEventArgs e)
        {
            #region Загрузка элементов

            AnimatedThreadWorker.ReportProgress(0, "load directives");

            try
            {
                if (_defferedItem.ItemId > 0 && _needReload)
                {
                    _defferedItem = GlobalObjects.CasEnvironment.NewLoader.GetObject <DirectiveDTO, DeferredItem>(new List <Filter>()
                    {
                        new Filter("ItemId", _defferedItem.ItemId),
                        new Filter("DirectiveType", 5)
                    });
                }
            }
            catch (Exception ex)
            {
                Program.Provider.Logger.Log("Error while loading directives", ex);
            }

            if (AnimatedThreadWorker.CancellationPending)
            {
                e.Cancel = true;
                return;
            }
            #endregion

            #region Калькуляция состояния директив

            AnimatedThreadWorker.ReportProgress(40, "calculation of directives");

            if (_needReload)
            {
                GlobalObjects.PerformanceCalculator.GetNextPerformance(_defferedItem);
            }

            if (AnimatedThreadWorker.CancellationPending)
            {
                e.Cancel = true;
                return;
            }
            #endregion

            #region Фильтрация директив
            AnimatedThreadWorker.ReportProgress(70, "filter directives");

            if (AnimatedThreadWorker.CancellationPending)
            {
                e.Cancel = true;
                return;
            }
            #endregion

            #region Сравнение с рабочими пакетами

            AnimatedThreadWorker.ReportProgress(90, "comparison with the Work Packages");

            if (AnimatedThreadWorker.CancellationPending)
            {
                e.Cancel = true;
                return;
            }
            #endregion

            AnimatedThreadWorker.ReportProgress(100, "Complete");
        }
Ejemplo n.º 11
0
        protected override List <CustomCell> GetListViewSubItems(Directive item)
        {
            var subItems = new List <CustomCell>();
            var author   = GlobalObjects.CasEnvironment.GetCorrector(item);
            //////////////////////////////////////////////////////////////////////////////////////
            //         Определение последнего выполнения директивы и KitRequiered               //
            //////////////////////////////////////////////////////////////////////////////////////
            var lastComplianceDate       = DateTimeExtend.GetCASMinDateTime();
            var nextComplianceDate       = DateTimeExtend.GetCASMinDateTime();
            var lastComplianceLifeLength = Lifelength.Zero;
            var nextComplianceRemain     = Lifelength.Null;

            string lastPerformanceString, firstPerformanceString = "N/A";

            DeferredItem     pd     = (DeferredItem)item;
            DirectiveStatus  status = pd.Status;
            DeferredCategory cat    = pd.DeferredCategory;
            //////////////////////////////////////////////////////////////////////////////////////
            //         Определение последнего выполнения директивы и KitRequiered               //
            //////////////////////////////////////////////////////////////////////////////////////

            var par = "  §: " + item.Paragraph;

            //Последнее выполнение
            if (item.LastPerformance != null &&
                item.LastPerformance.RecordDate > lastComplianceDate)
            {
                lastComplianceDate       = item.LastPerformance.RecordDate;
                lastComplianceLifeLength = item.LastPerformance.OnLifelength;
            }

            //Следующее выполнение
            //GlobalObjects.CasEnvironment.Calculator.GetNextPerformance(pd.DirectiveCollection[0]);
            var nextComplianceLifeLength = item.NextPerformanceSource;

            if (item.NextPerformanceDate != null)
            {
                nextComplianceDate = (DateTime)item.NextPerformanceDate;
            }
            if (item.Remains != null)
            {
                nextComplianceRemain = item.Remains;
            }
            if (item.Threshold.FirstPerformanceSinceNew != null && !item.Threshold.FirstPerformanceSinceNew.IsNullOrZero())
            {
                firstPerformanceString = "s/n: " + item.Threshold.FirstPerformanceSinceNew;
            }
            if (item.Threshold.FirstPerformanceSinceEffectiveDate != null &&
                !item.Threshold.FirstPerformanceSinceEffectiveDate.IsNullOrZero())
            {
                if (firstPerformanceString != "N/A")
                {
                    firstPerformanceString += " or ";
                }
                else
                {
                    firstPerformanceString = "";
                }
                firstPerformanceString += "s/e.d: " + item.Threshold.FirstPerformanceSinceEffectiveDate;
            }
            var repeatInterval     = item.Threshold.RepeatInterval;
            var kitRequieredString = item.Kits.Count + " kits";
            var ndtString          = item.NDTType.ShortName;
            var workType           = item.WorkType;
            var effDate            = item.Threshold.EffectiveDate;
            var manHours           = item.ManHours;
            var cost = item.Cost;

            var remarksString       = pd.Remarks;
            var hiddenRemarksString = pd.HiddenRemarks;

            if (lastComplianceDate <= DateTimeExtend.GetCASMinDateTime())
            {
                lastPerformanceString = "N/A";
            }
            else
            {
                lastPerformanceString = lastComplianceLifeLength.ToString();
            }

            var lastDate = (lastComplianceDate <= DateTimeExtend.GetCASMinDateTime())
                                ? ""
                                : SmartCore.Auxiliary.Convert.GetDateFormat(lastComplianceDate);


            var titleString         = pd.Title != "" ? pd.Title + par : "N/A";
            var sbString            = pd.ServiceBulletinNo != "" ? pd.ServiceBulletinNo : "N/A";
            var eoString            = pd.EngineeringOrders != "" ? pd.EngineeringOrders : "N/A";
            var descriptionString   = pd.Description;
            var applicabilityString = pd.Applicability;
            var ata = pd.ATAChapter;

            var groupName = "";

            if (item is DeferredItem)
            {
                var aircraft = GlobalObjects.AircraftsCore.GetAircraftById(item.ParentBaseComponent.ParentAircraftId);

                groupName = $"{aircraft}";
            }


            subItems.Add(CreateRow(groupName, groupName));
            subItems.Add(CreateRow(titleString, titleString));
            subItems.Add(CreateRow(sbString, sbString));
            subItems.Add(CreateRow(eoString, eoString));
            subItems.Add(CreateRow(descriptionString, descriptionString));
            subItems.Add(CreateRow(applicabilityString, applicabilityString));
            subItems.Add(CreateRow(workType.ToString(), workType));
            subItems.Add(CreateRow(cat.ToString(), cat));
            subItems.Add(CreateRow(status.ToString(), status));
            subItems.Add(CreateRow(effDate > DateTimeExtend.GetCASMinDateTime()
                                ? SmartCore.Auxiliary.Convert.GetDateFormat(effDate) : "", effDate));

            subItems.Add(CreateRow(SmartCore.Auxiliary.Convert.GetDateFormat(item.NextPerformance?.PerformanceDate), item.NextPerformance?.PerformanceDate));
            subItems.Add(CreateRow(item.NextPerformance?.PerformanceSource.ToString(), item.NextPerformance?.PerformanceSource));
            subItems.Add(CreateRow(item.NextPerformance?.Remains.ToString(), item.NextPerformance?.Remains));
            subItems.Add(CreateRow(item.NextPerformance?.NextLimit.Days != null ? SmartCore.Auxiliary.Convert.GetDateFormat(item.NextPerformance?.NextPerformanceDateNew) : "", item.NextPerformance?.NextPerformanceDateNew));
            subItems.Add(CreateRow(item.NextPerformance?.NextLimit.ToString(), item.NextPerformance?.NextLimit.ToString()));
            subItems.Add(CreateRow(item.NextPerformance?.RemainLimit.ToString(), item.NextPerformance?.RemainLimit.ToString()));
            subItems.Add(CreateRow(lastDate, lastComplianceDate));
            subItems.Add(CreateRow(lastPerformanceString, lastComplianceDate));


            subItems.Add(CreateRow(ata.ToString(), ata));
            subItems.Add(CreateRow(kitRequieredString, kitRequieredString));
            subItems.Add(CreateRow(ndtString, ndtString));
            subItems.Add(CreateRow(manHours == -1 ? "" : manHours.ToString(), manHours));
            subItems.Add(CreateRow(cost == -1 ? "" : cost.ToString(), cost));
            subItems.Add(CreateRow(remarksString, remarksString));
            subItems.Add(CreateRow(hiddenRemarksString, hiddenRemarksString));
            subItems.Add(CreateRow(author, author));

            return(subItems);
        }
Ejemplo n.º 12
0
        /// <summary>
        /// Данные у директивы обновляются по введенным данным
        /// </summary>
        /// <param name="destinationDefferedItem">Директива</param>
        /// <param name="changePageName">Менять ли название вкладки</param>
        public void ApplyChanges(DeferredItem destinationDefferedItem, bool changePageName)
        {
            textboxTitle.Focus();
            if (destinationDefferedItem == null)
            {
                throw new ArgumentNullException("destinationDefferedItem");
            }
            destinationDefferedItem.ATAChapter = ATAChapter;

            if (CurrentDefferedCategory != null && CurrentDefferedCategory != destinationDefferedItem.DeferredCategory)
            {
                destinationDefferedItem.DeferredCategory = CurrentDefferedCategory;
            }

            destinationDefferedItem.ADType = (ADType)(radioButtonAirFrame.Checked ? 0 : 1);
            if (destinationDefferedItem.Title != Title)
            {
                destinationDefferedItem.Title = Title;
                if (changePageName)
                {
                    string caption = "";

                    if (destinationDefferedItem.ParentBaseComponent != null)
                    {
                        //TODO:(Evgenii Babak) Использовать DestinationHelper
                        var baseComponent = destinationDefferedItem.ParentBaseComponent;
                        if (baseComponent.BaseComponentTypeId == BaseComponentType.Frame.ItemId)
                        {
                            //у Frame всегда есть ParentAircraftId
                            caption = $"{DestinationHelper.GetDestinationStringFromAircraft(baseComponent.ParentAircraftId, false, null)}. {destinationDefferedItem.DirectiveType.CommonName}. {destinationDefferedItem.Title}";
                        }
                        else
                        {
                            if (baseComponent.ParentAircraftId > 0)
                            {
                                caption = $"{DestinationHelper.GetDestinationStringFromAircraft(baseComponent.ParentAircraftId, false, null)}. ";
                            }
                            else if (baseComponent.ParentStoreId > 0)
                            {
                                caption = $"{DestinationHelper.GetDestinationStringFromStore(baseComponent.ParentStoreId, null, true)}. ";
                            }

                            caption += baseComponent + ". " + destinationDefferedItem.DirectiveType.CommonName + ". " + destinationDefferedItem.Title;
                        }
                    }
                    if (DisplayerRequested != null)
                    {
                        DisplayerRequested(this,
                                           new ReferenceEventArgs(null,
                                                                  ReflectionTypes.ChangeTextOfContainingDisplayer,
                                                                  caption));
                    }
                }
            }
            destinationDefferedItem.HiddenRemarks           = HiddenRemarks;
            destinationDefferedItem.Threshold.EffectiveDate = EffectiveDate;
            destinationDefferedItem.ServiceBulletinNo       = ServiceBulletin;
            destinationDefferedItem.EngineeringOrders       = EngOrderNumber;
            destinationDefferedItem.Applicability           = Applicability;
            destinationDefferedItem.Description             = Subject;
            destinationDefferedItem.DeferredLogBookRef      = LogBookReferences;
            destinationDefferedItem.DeferredMelCdlItem      = MelCdlItem;
            destinationDefferedItem.DeferredExtention       = Extention;
            destinationDefferedItem.Remarks = Remarks;

            if (fileControlSB.GetChangeStatus())
            {
                fileControlSB.ApplyChanges();
                fileControlSB.Save();
                destinationDefferedItem.ServiceBulletinFile = fileControlSB.AttachedFile;
            }

            if (fileControlEO.GetChangeStatus())
            {
                fileControlEO.ApplyChanges();
                fileControlEO.Save();
                destinationDefferedItem.EngineeringOrderFile = fileControlEO.AttachedFile;
            }

            if (fileControlADNo.GetChangeStatus())
            {
                fileControlADNo.ApplyChanges();
                fileControlADNo.Save();
                destinationDefferedItem.ADNoFile = fileControlADNo.AttachedFile;
            }
        }
Ejemplo n.º 13
0
        private void LookupComboboxDeferredSelectedIndexChanged(object sender, EventArgs e)
        {
            if (lookupComboboxDeferred.SelectedItem != null)
            {
                _showDeferredInfoPanel    = true;
                panelDeferredInfo.Visible = extendableRichContainer.Extended && _showDeferredInfoPanel;

                ataChapterComboBox.Enabled = false;
                DeferredItem di = lookupComboboxDeferred.SelectedItem as DeferredItem;
                ataChapterComboBox.ATAChapter = di != null ? di.ATAChapter : null;

                radioOpen.Enabled  = false;
                radioClose.Enabled = false;

                if (di != null)
                {
                    dateTimePickerOpenDate.Visible = true;
                    dateTimePickerOpenDate.Value   = di.Threshold.EffectiveDate;

                    if (di.PerformanceRecords.Count > 0)
                    {
                        if (di.IsClosed)
                        {
                            dateTimePickerClosingDate.Visible = true;
                            dateTimePickerExtension.Visible   = false;
                            numericUpDownExtTimes.Visible     = false;
                            dateTimePickerClosingDate.Value   = di.PerformanceRecords.GetLast().RecordDate;
                        }
                        else
                        {
                            dateTimePickerClosingDate.Visible = false;
                            dateTimePickerExtension.Visible   = true;
                            numericUpDownExtTimes.Visible     = true;
                            dateTimePickerExtension.Value     = di.PerformanceRecords.GetLast().RecordDate;

                            try
                            {
                                numericUpDownExtTimes.Value =
                                    GlobalObjects.CasEnvironment.Loader.GetCountPerformanceRecords <DirectiveRecord>(
                                        SmartCoreType.Directive, di.ItemId);
                            }
                            catch (Exception ex)
                            {
                                Program.Provider.Logger.Log("Error while load count of records for directive id:" + di.ItemId,
                                                            ex);
                            }

                            GlobalObjects.PerformanceCalculator.GetNextPerformance(di);
                            lifelengthViewerRemains.Lifelength = di.Remains;
                        }
                    }
                    else
                    {
                        dateTimePickerClosingDate.Visible = false;
                        dateTimePickerExtension.Visible   = false;
                        numericUpDownExtTimes.Visible     = false;

                        GlobalObjects.PerformanceCalculator.GetNextPerformance(di);
                        lifelengthViewerRemains.Lifelength = di.Remains;
                    }

                    if (di.Status == DirectiveStatus.Closed)
                    {
                        textBoxMelCdl.Text           = di.DeferredMelCdlItem;
                        textBoxDeferredCategory.Text = di.DeferredCategory.ToString();

                        if (di.Status == DirectiveStatus.Closed)
                        {
                            radioClose.Checked = true;
                        }
                        else
                        {
                            radioOpen.Checked = true;
                        }
                    }
                }
                if (di == null)
                {
                    dateTimePickerOpenDate.Visible     = false;
                    dateTimePickerClosingDate.Visible  = false;
                    dateTimePickerExtension.Visible    = false;
                    numericUpDownExtTimes.Visible      = false;
                    lifelengthViewerRemains.Lifelength = Lifelength.Null;
                }
            }
            else
            {
                _showDeferredInfoPanel    = false;
                panelDeferredInfo.Visible = _showDeferredInfoPanel;

                ataChapterComboBox.Enabled    = true;
                ataChapterComboBox.ATAChapter = Discrepancy.ATAChapter;
                radioOpen.Enabled             = true;
                radioClose.Enabled            = true;

                if (Discrepancy.CorrectiveAction != null &&
                    Discrepancy.CorrectiveAction.Status == CorrectiveActionStatus.Close)
                {
                    radioClose.Checked = true;
                }
                else
                {
                    radioOpen.Checked = true;
                }
            }
        }