private ComponentDialog CreateSurvey(ISurveyDefinition surveyDefinition)
        {
            var dialogs = new List <Dialog>();

            foreach (ISurveyStepDefinition stepDefinition in surveyDefinition.StepDefinitions)
            {
                // register each step with the dialogs stack
                dialogs.Add(this.CreateDialogStep(stepDefinition));
            }

            return(new SurveyDialog(surveyDefinition.Id)
                   .WithDialogSteps(dialogs)
                   .Build());
        }
 /// <inheritdoc />
 public T Create <T>(ISurveyDefinition surveyDefinition)
     where T : ComponentDialog => (T)this.CreateSurvey(surveyDefinition);