/// <summary>
        /// Resume a workflow that was started with a Survey Task
        /// </summary>
        /// <param name="task"></param>
        void ResumeWf(UserSurveyTask task)
        {
            var runner = Factory.Current.Resolve <IWorkflowRunner>();

            var resumeEvent = new ResumeSurveyEvent {
                CompletionStateId = task.UserResponse?.Id ?? 0
            };

            runner.ResumeWorkflowAsync(task.WorkflowRunForTask, resumeEvent);
        }
        void UpdateAnswersInTask(UserSurveyTask task)
        {
            var toSave = new List <IEntity>();

            foreach (var answer in task.UserSurveyTaskSurveyResponse.SurveyAnswers)
            {
                var writableAnswer = answer.AsWritable <SurveyAnswer>();
                writableAnswer.SurveyAnswerCalculatedValue = answer.CalcAdjustedValue();
                writableAnswer.SurveyAnswerSummary         = answer.GenerateTextSummary();
                toSave.Add(writableAnswer);
            }

            var writableResults = task.UserSurveyTaskSurveyResponse.AsWritable <SurveyResponse>();

            writableResults.SurveyCompletedOn = DateTime.UtcNow;

            UpdateSurveyResponses(writableResults);

            toSave.Add(writableResults);

            Entity.Save(toSave);
        }