public AvailableQuestionnaireTemplatesListViewModel(IQuestionnaireRepository questionnaireRepository, ISingleViewUIService uiService)
        {
            this.QuestionnaireTemplates = new ObservableCollection<QuestionnaireTemplate>();

            this.questionnaireRepository = questionnaireRepository;
            this.uiService = uiService;

            this.QuestionnaireTemplates = new ObservableCollection<QuestionnaireTemplate>();

            this.TakeSurveyCommand = new ActionCommand(o => this.TakeSurvey((QuestionnaireTemplate)o));

            this.QuestionnaireTemplateSummary = new QuestionnaireTemplateSummaryViewModel(this.questionnaireRepository);

            this.questionnaireRepository.GetQuestionnaireTemplatesAsync(
                (result) =>
                {
                    RefreshQuestionnaireTemplates(result.Result);
                });
        }
        public AvailableQuestionnaireTemplatesListViewModel(IQuestionnaireRepository questionnaireRepository, ISingleViewUIService uiService)
        {
            this.QuestionnaireTemplates = new ObservableCollection <QuestionnaireTemplate>();

            this.questionnaireRepository = questionnaireRepository;
            this.uiService = uiService;

            this.QuestionnaireTemplates = new ObservableCollection <QuestionnaireTemplate>();

            this.TakeSurveyCommand = new ActionCommand(o => this.TakeSurvey((QuestionnaireTemplate)o));

            this.QuestionnaireTemplateSummary = new QuestionnaireTemplateSummaryViewModel(this.questionnaireRepository);

            this.questionnaireRepository.GetQuestionnaireTemplatesAsync(
                (result) =>
            {
                RefreshQuestionnaireTemplates(result.Result);
            });
        }
        public QuestionnaireViewModel(
            IState <QuestionnaireTemplate> questionnaireTemplate,
            IQuestionnaireRepository questionnaireRepository,
            ISingleViewUIService uiService)
        {
            this.questionnaireRepository = questionnaireRepository;
            this.uiService = uiService;

            this.submitErrorInteractionRequest        = new InteractionRequest <Notification>();
            this.cancelConfirmationInteractionRequest = new InteractionRequest <Confirmation>();

            this.Questions    = new ObservableCollection <QuestionViewModel>();
            this.currentState = "Normal";

            this.Questionnaire = new Questionnaire(questionnaireTemplate.Value);
            this.Questionnaire.PropertyChanged += this.OnQuestionnairePropertyChanged;

            foreach (var question in this.Questionnaire.Questions)
            {
                this.Questions.Add(this.CreateQuestionViewModel(question));
            }
        }
        public QuestionnaireViewModel(
           IState<QuestionnaireTemplate> questionnaireTemplate,
           IQuestionnaireRepository questionnaireRepository,
           ISingleViewUIService uiService)
        {
            this.questionnaireRepository = questionnaireRepository;
            this.uiService = uiService;

            this.submitErrorInteractionRequest = new InteractionRequest<Notification>();
            this.cancelConfirmationInteractionRequest = new InteractionRequest<Confirmation>();

            this.Questions = new ObservableCollection<QuestionViewModel>();
            this.currentState = "Normal";

            this.Questionnaire = new Questionnaire(questionnaireTemplate.Value);
            this.Questionnaire.PropertyChanged += this.OnQuestionnairePropertyChanged;

            foreach (var question in this.Questionnaire.Questions)
            {
                this.Questions.Add(this.CreateQuestionViewModel(question));
            }
        }