Пример #1
0
            public InspectionState(CswNbtObjClassInspectionDesign Design)
            {
                _Design             = Design;
                UnAnsweredQuestions = new CswCommaDelimitedString();

                if (null != _Design && null != _Design.Node)
                {
                    CswNbtPropEnmrtrFiltered QuestionsFlt = _Design.Node.Properties[(CswEnumNbtFieldType)CswEnumNbtFieldType.Question];
                    foreach (CswNbtNodePropWrapper PropWrapper in QuestionsFlt)
                    {
                        _Questions.Add(PropWrapper);
                    }
                    foreach (CswNbtNodePropQuestion Question in _Questions)
                    {
                        if (string.IsNullOrEmpty(Question.Answer.Trim()))
                        {
                            UnAnsweredQuestions.Add(Question.Question);
                        }
                    }
                }
            }
Пример #2
0
        } //afterPopulateProps()

        public override bool onPropertySetButtonClick(NbtButtonData ButtonData)
        {
            if (null != ButtonData && null != ButtonData.NodeTypeProp)
            {
                switch (ButtonData.NodeTypeProp.getObjectClassPropName())
                {
                case PropertyName.Finish:
                    if (false == _CswNbtResources.IsSystemUser)
                    {
                        InspectionDate.DateTimeValue = DateTime.Now;
                        Inspector.RelatedNodeId      = _CswNbtResources.CurrentNbtUser.UserId;
                    }
                    if (_InspectionState.AllAnswered)
                    {
                        if (_InspectionState.Deficient)
                        {
                            ButtonData.Message = "Inspection is deficient and requires further action.";
                            this.Status.Value  = CswEnumNbtInspectionStatus.ActionRequired;
                        }
                        else
                        {
                            string StatusValue = _InspectionState.AllAnsweredInTime ? CswEnumNbtInspectionStatus.Completed : CswEnumNbtInspectionStatus.CompletedLate;
                            ButtonData.Message = "Inspection marked " + StatusValue + ".";
                            this.Status.Value  = StatusValue;
                            ButtonData.Action  = CswEnumNbtButtonAction.refresh;
                        }
                    }     // if( _allAnswered )
                    else
                    {
                        ButtonData.Message =
                            "Inspection can not be finished until all questions are answered.  Questions remaining: " +
                            _InspectionState.UnAnsweredQuestions.ToString();
                    }
                    break;

                case PropertyName.Cancel:
                    ButtonData.Message = "Inspection has been cancelled.";
                    this.Status.Value  = CswEnumNbtInspectionStatus.Cancelled;
                    ButtonData.Action  = CswEnumNbtButtonAction.refresh;
                    break;

                case PropertyName.SetPreferred:
                    CswNbtPropEnmrtrFiltered QuestionsFlt  = Node.Properties[(CswEnumNbtFieldType)CswEnumNbtFieldType.Question];
                    int NumOfQuestionsSetToPreferredAnswer = 0;
                    foreach (CswNbtNodePropWrapper PropWrapper in QuestionsFlt)
                    {
                        CswNbtNodePropQuestion QuestionProp = PropWrapper;      // don't refactor this into the foreach.  it doesn't work. case 28300.
                        if (string.IsNullOrEmpty(QuestionProp.Answer.Trim()))
                        {
                            QuestionProp.Answer = QuestionProp.PreferredAnswer;
                            NumOfQuestionsSetToPreferredAnswer++;
                        }
                    }
                    ButtonData.Message = NumOfQuestionsSetToPreferredAnswer + " unanswered questions have been set to their preferred answer.";
                    _toggleButtonVisibility(SetPreferred, IsVisible: false, SaveToDb: true);
                    ButtonData.Action = CswEnumNbtButtonAction.refresh;
                    break;

                case CswNbtObjClass.PropertyName.Save:
                    break;
                }
                this.postChanges(false);
            } // if( null != NodeTypeProp )
            return(true);
        }