コード例 #1
0
ファイル: ActualStateDialog.cs プロジェクト: mkbiltek2019/Cas
        /// <summary>
        /// Возвращает значение, показывающее является ли значение элемента управления допустимым
        /// </summary>
        /// <returns></returns>
        private bool ValidateData(out string message)
        {
            message = "";

            if (dateTimePicker1.Value.Date > DateTime.Now.Date)
            {
                if (message != "")
                {
                    message += "\n ";
                }
                message += "Performance date must be less than current date.";
                return(false);
            }
            if (dateTimePicker1.Value.Date < _currentComponent.ManufactureDate.Date)
            {
                if (message != "")
                {
                    message += "\n ";
                }
                message += "Performance date must be grather than manufacture date.";
                return(false);
            }

            Lifelength perfLifeLength = lifelengthViewer_LastCompliance.Lifelength;

            if (_currentActualStateRecord.ItemId <= 0)
            {
                IWorkRegime       workRegime = comboBoxFlightRegime.SelectedItem as IWorkRegime ?? FlightRegime.UNK;
                ActualStateRecord acr        = _currentComponent.ActualStateRecords[dateTimePicker1.Value, workRegime];
                if (acr != null)
                {
                    //Актуальное состояние на заданную дату есть
                    message =
                        $"On a given date {SmartCore.Auxiliary.Convert.GetDateFormat(dateTimePicker1.Value)} have a saved record";
                    return(false);
                }

                acr = _currentComponent.ActualStateRecords.GetLastKnownRecord(dateTimePicker1.Value, workRegime);
                if (acr != null && perfLifeLength.IsLessByAnyParameter(acr.OnLifelength))
                {
                    message = "Performance source must be grather than " + acr.OnLifelength;
                    return(false);
                }

                acr = _currentComponent.ActualStateRecords.GetFirstKnownRecord(dateTimePicker1.Value, workRegime);
                if (acr != null && perfLifeLength.IsGreaterByAnyParameter(acr.OnLifelength))
                {
                    message = "Performance source must be less than " + acr.OnLifelength;
                    return(false);
                }
            }


            if (_prevPerfLifelength != null && perfLifeLength.IsLessByAnyParameter(_prevPerfLifelength))
            {
                if (message != "")
                {
                    message += "\n ";
                }
                message += "Performance source must be grather than " + _prevPerfLifelength;
                return(false);
            }
            if (_nextPerfLifelength != null && perfLifeLength.IsGreaterByAnyParameter(_nextPerfLifelength))
            {
                if (message != "")
                {
                    message += "\n ";
                }
                message += "Performance source must be less than " + _nextPerfLifelength;
                return(false);
            }
            return(true);
        }