public Question AddQuestion(string inquiry, bool required, QuestionType type, int questionnaireId)
        {
            Domain.Questionnaire.Questionnaire questionnaire = GetQuestionnaire(questionnaireId);
            if (questionnaire == null)
            {
                throw new ArgumentException("Questionnaire not found.");
            }

            Question question = new Question()
            {
                Inquiry       = inquiry,
                QuestionType  = type,
                Questionnaire = questionnaire
            };

            return(AddQuestion(question));
        }
        public Domain.Questionnaire.Questionnaire AddQuestionnaire(string title, string description, int projectPhaseId)
        {
            ProjectPhase phase = _projectManager.GetProjectPhase(projectPhaseId);

            if (phase == null)
            {
                throw new ArgumentException("Project phase not found.");
            }

            Domain.Questionnaire.Questionnaire questionnaire = new Domain.Questionnaire.Questionnaire()
            {
                Title        = title,
                Description  = description,
                ProjectPhase = phase
            };

            return(AddQuestionnaire(questionnaire));
        }
        public Domain.Questionnaire.Questionnaire ChangeQuestionnaire(int id, string title, string description, int projectPhaseId)
        {
            Domain.Questionnaire.Questionnaire toChange = GetQuestionnaire(id);
            if (toChange != null)
            {
                ProjectPhase phase = _projectManager.GetProjectPhase(projectPhaseId);
                if (phase == null)
                {
                    throw new ArgumentException("Project phase not found", "projectPhaseId");
                }

                toChange.Title        = title;
                toChange.Description  = description;
                toChange.ProjectPhase = phase;

                Validate(toChange);
                return(_questionnaireRepository.UpdateQuestionnaire(toChange));
            }

            throw new ArgumentException("Questionnaire not found.", "id");
        }
        public Question ChangeQuestion(int id, string inquiry, QuestionType type, int questionnaireId)
        {
            Question toChange = GetQuestion(id);

            if (toChange != null)
            {
                Domain.Questionnaire.Questionnaire questionnaire = GetQuestionnaire(questionnaireId);
                if (questionnaire == null)
                {
                    throw new ArgumentException("Questionnaire not found.", "questionnaireId");
                }

                toChange.Inquiry       = inquiry;
                toChange.QuestionType  = type;
                toChange.Questionnaire = questionnaire;

                Validate(toChange);
                return(_questionRepository.UpdateQuestion(toChange));
            }

            throw new ArgumentException("Question not found.", "id");
        }
 /**
  * Helper method to validate the object we want to persist against the validation annotations.
  * Will throw a ValidationException upon failing.
  */
 private void Validate(Domain.Questionnaire.Questionnaire questionnaire)
 {
     Validator.ValidateObject(questionnaire, new ValidationContext(questionnaire), true);
 }
 private Domain.Questionnaire.Questionnaire AddQuestionnaire(Domain.Questionnaire.Questionnaire questionnaire)
 {
     Validate(questionnaire);
     return(_questionnaireRepository.CreateQuestionnaire(questionnaire));
 }