private FireRiskAssessmentChecklistViewModel AddCompleteValidationErrorsToViewModel(FireRiskAssessmentChecklistViewModel viewModel)
 {
     var nonNotApplicableAnswerQuestionIds = viewModel.GetAllNonNotApplicableFireAnswerQuestionIds();
     var validationResult = _fireRiskAssessmentChecklistService.ValidateFireRiskAssessmentChecklist(new ValidateCompleteFireRiskAssessmentChecklistRequest
                                                  {
                                                      ChecklistId = viewModel.FireRiskAssessmentChecklistId,
                                                      QuestionIds = nonNotApplicableAnswerQuestionIds
                                                  });
     if (!validationResult.IsValid)
     {
         viewModel = GetViewModel(viewModel, validationResult.Errors);
     }
     return viewModel;
 }
        public ActionResult Complete(FireRiskAssessmentChecklistViewModel viewModel)
        {
            // Validate 
            var allNonNotApplicableFireAnswerQuestionIds = viewModel.GetAllNonNotApplicableFireAnswerQuestionIds();
            var validationResult = GetValidationResult(viewModel.FireRiskAssessmentChecklistId, allNonNotApplicableFireAnswerQuestionIds);
            if (!validationResult.IsValid)
            {
                _fireRiskAssessmentChecklistService.MarkChecklistWithCompleteFailureAttempt(GetMarkCompleteAsFailureRequest(viewModel.FireRiskAssessmentChecklistId));

                var viewModelWithValidationErrors = _viewModelFactory.GetViewModel(viewModel, validationResult.Errors);
                return View("Index", viewModelWithValidationErrors);
            }

            // Complete
            var request = viewModel.CreateCompleteRequest(CurrentUser);

            _fireRiskAssessmentService.CompleteFireRiskAssessmentChecklist(request);

            TempData["Notice"] = "Checklist has been completed.";
            return RedirectToAction("Index", new { viewModel.RiskAssessmentId, viewModel.CompanyId });
        }