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); } } } }
} //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); }