Example #1
0
        public TestsViewModel(
            ITestQuery queries,
            ITests commands,
            ISubjectQuery subjectQuery,
            IValidator<Test> testValidator,
            IValidator<Question> questionValidator,
            IValidator<Answer> answerValidator,
            IValidator<AssociatedSubject> subjectValidator
        )
            : base()
        {
            _queries = queries;
            _commands = commands;

            _subjectQuery = subjectQuery;

            _testValidator = testValidator;
            _questionValidator = questionValidator;
            _answerValidator = answerValidator;
            _subjectValidator = subjectValidator;


            LoadAllTests();

            _addTestCommand = new RelayCommand(
                () => AddNewTest(),
                () => CanAddNewTest()
            );
        }
Example #2
0
        public AnswersViewModel(
            IEnumerable<Answer> answers,
            IValidator<Answer> answerValidator,
            IValidator<AssociatedSubject> subjectValidator,
            ISubjectQuery subjectQuery,
            Guid busId)
        {
            if (answerValidator == null)
                throw new ArgumentNullException("answerValidator");

            if (subjectValidator == null)
                throw new ArgumentNullException("subjectValidator");

            if (subjectQuery == null)
                throw new ArgumentNullException("subjectQuery");

            _busId = busId;

            _answerValidator = answerValidator;
            _subjectValidator = subjectValidator;
            _subjectQuery = subjectQuery;

            InitializeAnswers(answers);
            InitializeCommands();
        }
        public DefaultTestEvaluator(ISubjectQuery subjects, TextLoader textLoader,  ILogger logger)
        {
            _subjects = subjects;
            _logger = logger;
            _textLoader = textLoader;

            InitializeSubjects();
        }
Example #4
0
        public SubjectsViewModel(ISubjectQuery subjectQueries, ISubjects subjectCommands, IValidator<Subject> subjectValidator)
            : base()
        {
            _commands = subjectCommands;
            _queries = subjectQueries;
            _subjects = new ObservableCollection<ViewModelBase>();
            _subjectValidator = subjectValidator;

            LoadSubjects();

            this.IsDirtyChangedEvent += new EventHandler(IsDirtyChangedHandler);

            MessengerInstance.Register<Messages.Navigating>(this, "SubjectsView", msg => Cleanup());
        }
Example #5
0
        public AnswerViewModel(
            Answer answer, 
            IValidator<Answer> answerValidator,
            IValidator<AssociatedSubject> subjectValidator,
            ISubjectQuery subjectQuery,
            Guid busId)
        {
            _answer = answer;
            _busId = busId;

            _answerValidator = answerValidator;
            _subjectValidator = subjectValidator;
            _subjectQuery = subjectQuery;

            InitializeCommands();
            InitializeSubjects();

            _logger.Log(Level.Trace, "Created a new answer");
        }
Example #6
0
        public QuestionViewModel(
            Question question, 
            IValidator<Question> questionValidator,
            IValidator<Answer> answerValidator,
            IValidator<AssociatedSubject> subjectValidator,
            ISubjectQuery subjectQuery,
            Guid busId
        )
            : base()
        {
            _busId = busId;
            _question = question;
            _questionValidator = questionValidator;
            _answerValidator = answerValidator;
            _subjectValidator = subjectValidator;
            _subjectQuery = subjectQuery;

            InitializeCommands();
            InitializeAnswers();
        }
        public EditingTestViewModel(
            Test test,
            IValidator<Test> testValidator,
            IValidator<Question> questionValidator,
            IValidator<Answer> answerValidator,
            IValidator<AssociatedSubject> subjectValidator,
            ISubjectQuery subjectQuery
        )
        {
            if (test == null)
                throw new ArgumentNullException("test");

            _busId = test.Id;
            _test = test;
            _testValidator = testValidator;

            InitializeQuestions(test, questionValidator, answerValidator, subjectValidator, subjectQuery);

            this.PropertyChanged += PropertyHasChanged;
           
            RegisterMessages();
            IntializeCommands();
        }
        public AssociatedSubjectsViewModel(
            IEnumerable<AssociatedSubject> subjects, 
            IValidator<AssociatedSubject> subjectValidator,
            ISubjectQuery subjectsQuery,
            Guid busId)
        {
            if (subjectsQuery == null)
                throw new ArgumentNullException("subjectsQuery");

            if (subjectValidator == null)
                throw new ArgumentNullException("subjectValidator");

            if (subjects == null)
                throw new ArgumentNullException("subjects");

            _busId = busId;
            _subjectQuery = subjectsQuery;

            _subjectValidator = subjectValidator;
            _subjectQuery = subjectsQuery;

            InitializeSubjects(subjects);
            InitializeCommands();
        }
Example #9
0
        public QuestionsViewModel(
            IEnumerable<Domain.Question> questions,
            IValidator<Question> questionValidator,
            IValidator<Answer> answerValidator,
            IValidator<AssociatedSubject> subjectValidator,
            ISubjectQuery subjectQuery,
            Guid busId
        )
            : base()
        {
            _busId = busId;

            _questions = 
                new ObservableCollection<QuestionViewModel>();

            _questionValidator = questionValidator;
            _answerValidator = answerValidator;
            _subjectValidator = subjectValidator;
            _subjectQuery = subjectQuery;

            BuildViewModels(questions);
            InitializeCommands();
            InitializeView();
        }
Example #10
0
        public override void Cleanup()
        {
            //stop listening for the dirty event
            IsDirtyChangedEvent -= IsDirtyChangedHandler;

            //release singletons
            _queries = null;
            _commands = null;
            _subjectValidator = null;

            //clean the list
            var editingViewModels = _subjects.OfType<EditingSubjectViewModel>().ToList();
            var subjectViewModels = _subjects.OfType<SubjectViewModel>().ToList();

            for (int i = 0; i < editingViewModels.Count; i++)
            {
                var vm = editingViewModels[0];
                UnhookEvents(vm);
                vm.Cleanup();
            }

            for (int i = 0; i < subjectViewModels.Count; i++)
            {
                var vm = subjectViewModels[0];
                UnhookEvents(vm);
                vm.Cleanup();
            }

            for (int i = 0; i < _subjects.Count; i++)
            {
                var vm = _subjects[0];
                vm.Cleanup();
            }
            
            //call base cleanup
            base.Cleanup();
        }
Example #11
0
        private void InitializeQuestions(
            Test test, 
            IValidator<Question> questionValidator,
            IValidator<Answer> answerValidator, 
            IValidator<AssociatedSubject> subjectValidator, 
            ISubjectQuery subjectQuery
        )
        {
            _questions = new QuestionsViewModel(
                test.Questions,
                questionValidator,
                answerValidator,
                subjectValidator,
                subjectQuery,
                _busId
            );

            AttachQuestionEvents(_questions);
        }