Ejemplo n.º 1
0
        public void WhenNameIsSet_ThenHasChanges()
        {
            var questionnaireTemplate = new QuestionnaireTemplate {
                Title = "questionnaire"
            };
            var viewModel =
                new QuestionnaireViewModel(
                    CreateStateMock(questionnaireTemplate).Object,
                    new Mock <IQuestionnaireRepository>().Object,
                    new Mock <ISingleViewUIService>().Object);

            viewModel.Questionnaire.Name = "name";

            Assert.IsTrue(viewModel.HasChanges);
        }
Ejemplo n.º 2
0
        public void WhenQuestionnaireIsCompleted_ThenCanSubmitReturnsTrue()
        {
            var viewModel =
                new QuestionnaireViewModel(
                    CreateStateMock(CreateQuestionnaireTemplate()).Object,
                    new Mock <IQuestionnaireRepository>().Object,
                    new Mock <ISingleViewUIService>().Object);

            viewModel.Questionnaire.Name = "QuestionnaireName";
            viewModel.Questionnaire.Age  = 25;
            AnswerAllQuestions(viewModel);

            // Assertions
            Assert.IsTrue(viewModel.CanSubmit);
        }
        public override void ViewDidLoad()
        {
            base.ViewDidLoad();

            _viewModel = new QuestionnaireViewModel();

            // Generate and set the correlation id for current authentication flow
            UpdateCorrelationId(LogUtils.GenerateCorrelationId());

            SetTexts();
            SetStyling();
            UpdateUIWhenSelectionChanges();
            SetAccessibilityAttributes();
            AddObservers();
        }
Ejemplo n.º 4
0
        public void WhenGettingCalculatedPropertiesBeforeGettingAQuestionnaire_ThenReturnsDefaultValues()
        {
            Action <IOperationResult <Questionnaire> > callback = null;

            var repository = new Mock <IQuestionnaireRepository>();

            repository.Setup(r => r.GetQuestionnaireAsync(It.IsAny <Action <IOperationResult <Questionnaire> > >()))
            .Callback <Action <IOperationResult <Questionnaire> > >(c => callback = c);

            var viewModel = new QuestionnaireViewModel(repository.Object);

            Assert.AreEqual(0, viewModel.TotalQuestions);
            Assert.AreEqual(0, viewModel.UnansweredQuestions);
            Assert.IsFalse(viewModel.CanSubmit);
        }
Ejemplo n.º 5
0
        public async Task <IActionResult> Question(QuestionnaireViewModel questionnaireViewModel)
        {
            var result = await _question.AddQuestionnaire(questionnaireViewModel);

            if (result != 0)
            {
                var Response = new ResponseViewModel(true, HttpStatusCode.OK, "SUCCESS", result);
                return(Ok(Response));
            }
            else
            {
                var Response = new ResponseViewModel(false, HttpStatusCode.NoContent, "failed", null);
                return(Ok(Response));
            }
        }
Ejemplo n.º 6
0
        public IActionResult Questionnaire(QuestionnaireViewModel viewModel)
        {
            ModelState.Remove("Order");

            var scrollBtnValue = Request.Form["scrollBtn"];

            int step;

            switch (scrollBtnValue)
            {
            case "prev":
                step = -1;
                break;

            case "next":
                step = 1;
                break;

            default:
                step = 0;
                break;
            }

            var questionList = _context.BinaryQuestions;

            var question =
                questionList.FirstOrDefault(q => q.GetOrder() == viewModel.Order + step);


            if (viewModel.SelectedAnswers != null && viewModel.SelectedAnswers.Any(a => a.Equals("True")))
            {
                var result = _context.BinaryQuestions.Include(q => q.Result).FirstOrDefault(q => q.Order == viewModel.Order)?.Result;

                return(View("Result", result));
            }

            if (question == null)
            {
                var result = _context.Results.LastOrDefault();
                return(View("Result", result));
            }

            viewModel.Order   = question.Order;
            viewModel.Text    = question.Text;
            viewModel.Answers = question.Answers;

            return(View(viewModel));
        }
Ejemplo n.º 7
0
        public void WhenCurrentStateIsModified_ThenViewModelNotifiesUpdate()
        {
            var questionnaireTemplate = CreateQuestionnaireTemplate();
            var viewModel             =
                new QuestionnaireViewModel(
                    CreateStateMock(questionnaireTemplate).Object,
                    new Mock <IQuestionnaireRepository>().Object,
                    new Mock <ISingleViewUIService>().Object);

            var changeTracker = new PropertyChangeTracker(viewModel);

            viewModel.CurrentState = "newState";

            // Assertions
            Assert.IsTrue(changeTracker.ChangedProperties.Contains("CurrentState"));
        }
Ejemplo n.º 8
0
        public void WhenTheViewModelIsCreatedWithATemplate_ThenItCreatesAQuestionnaireAndTheViewModelsForItsQuestions()
        {
            var questionnaireTemplate = CreateQuestionnaireTemplate();

            var viewModel =
                new QuestionnaireViewModel(
                    CreateStateMock(questionnaireTemplate).Object,
                    new Mock <IQuestionnaireRepository>().Object,
                    new Mock <ISingleViewUIService>().Object);

            Assert.AreSame(questionnaireTemplate, viewModel.Questionnaire.Template);
            Assert.AreEqual(2, viewModel.Questions.Count);
            CollectionAssert.AreEqual(
                new[] { "Enter your name", "Enter your address" },
                viewModel.Questions.Cast <OpenQuestionViewModel>().Select(q => q.Question.QuestionText).ToArray());
        }
Ejemplo n.º 9
0
 public ActionResult Edit(QuestionnaireViewModel model)
 {
     if (ModelState.IsValid)
     {
         try
         {
             Service.UpdateQuestionnaire(Mapper.Map <Questionnaire>(model));
             return(RedirectToAction("Index"));
         }
         catch
         {
             return(View(model));
         }
     }
     return(View(model));
 }
Ejemplo n.º 10
0
        public void WhenQuestionIsAnswered_ThenAllUnansweredQuestionsAreUpdated()
        {
            var viewModel =
                new QuestionnaireViewModel(
                    CreateStateMock(CreateQuestionnaireTemplate()).Object,
                    new Mock <IQuestionnaireRepository>().Object,
                    new Mock <ISingleViewUIService>().Object);

            var question = viewModel.Questions.First() as OpenQuestionViewModel;

            question.Question.Response = "some text";

            // Assertions
            Assert.AreEqual(2, viewModel.TotalQuestions);
            Assert.AreEqual(1, viewModel.UnansweredQuestions);
        }
Ejemplo n.º 11
0
        public void WhenQuestionnaireHasNumericQuestion_ThenTheMatchingViewModelIsCreated()
        {
            Action <IOperationResult <Questionnaire> > callback = null;

            var repository = new Mock <IQuestionnaireRepository>();

            repository.Setup(r => r.GetQuestionnaireAsync(It.IsAny <Action <IOperationResult <Questionnaire> > >()))
            .Callback <Action <IOperationResult <Questionnaire> > >(c => callback = c);

            var viewModel = new QuestionnaireViewModel(repository.Object);

            callback(CreateQuestionnaireResult(new Questionnaire(new NumericQuestion("Numeric"))));

            // Assertions
            Assert.IsInstanceOfType(viewModel.Questions[0], typeof(NumericQuestionViewModel));
        }
Ejemplo n.º 12
0
        public virtual ActionResult Edit(QuestionnaireViewModel model)
        {
            if (ModelState.IsValid)
            {
                var questionnaire = _questionnairesRepository.GetById(model.QuestionnaireId);
                questionnaire.OrderNumber = model.OrderNumber;
                questionnaire.Name        = model.Name;
                questionnaire.IsActive    = model.IsActive;
                questionnaire.KeyType     = model.KeyType;

                _questionnairesRepository.Update(questionnaire);

                return(RedirectToAction(MVC.Admin.Questionnaires.List()));
            }
            return(View(model));
        }
Ejemplo n.º 13
0
        public void WhenQuestionnaireIsCreated_ThenAllQuestionsAreUnanswered()
        {
            Action <IOperationResult <Questionnaire> > callback = null;

            var repository = new Mock <IQuestionnaireRepository>();

            repository.Setup(r => r.GetQuestionnaireAsync(It.IsAny <Action <IOperationResult <Questionnaire> > >()))
            .Callback <Action <IOperationResult <Questionnaire> > >(c => callback = c);

            var viewModel = new QuestionnaireViewModel(repository.Object);

            callback(CreateQuestionnaireResult());

            // Assertions
            Assert.AreEqual(2, viewModel.TotalQuestions);
            Assert.AreEqual(2, viewModel.UnansweredQuestions);
        }
Ejemplo n.º 14
0
        public void WhenQuestionIsAnswered_ThenQuestionnaireModelNotifiesUpdate()
        {
            var viewModel =
                new QuestionnaireViewModel(
                    CreateStateMock(CreateQuestionnaireTemplate()).Object,
                    new Mock <IQuestionnaireRepository>().Object,
                    new Mock <ISingleViewUIService>().Object);

            var changeTracker = new PropertyChangeTracker(viewModel);

            var question = viewModel.Questions.First() as OpenQuestionViewModel;

            question.Question.Response = "some text";

            // Assertions
            Assert.IsTrue(changeTracker.ChangedProperties.Contains("UnansweredQuestions"));
        }
Ejemplo n.º 15
0
        public void WhenQuestionnaireHasNumericQuestion_ThenTheMatchingViewModelIsCreated()
        {
            var questionnaireTemplate =
                new QuestionnaireTemplate
            {
                Questions = { new NumericQuestionTemplate {
                                  QuestionText = "Numeric"
                              } }
            };
            var viewModel =
                new QuestionnaireViewModel(
                    CreateStateMock(questionnaireTemplate).Object,
                    new Mock <IQuestionnaireRepository>().Object,
                    new Mock <ISingleViewUIService>().Object);

            Assert.IsInstanceOfType(viewModel.Questions[0], typeof(NumericQuestionViewModel));
        }
Ejemplo n.º 16
0
        public void Index_WhenCalled_ReturnsViewWithQuestionnaireViewModel()
        {
            //Arrange
            SetupQuestionnaireController();
            var expectedQuestionnaire = new QuestionnaireViewModel()
            {
                QuestionnaireTitle = "My expected quesitons"
            };

            _httpClientWrapperMock.Setup(m => m.GetAsync <QuestionnaireViewModel>("Questions/Get")).Returns(expectedQuestionnaire);

            //Act
            var result = (QuestionnaireViewModel)_questionnaireController.Index().Result.ViewData.Model;

            //Assert
            Assert.That(result.QuestionnaireTitle, Is.EqualTo(expectedQuestionnaire.QuestionnaireTitle));
        }
Ejemplo n.º 17
0
        public void ShouldReturnAllFalseAsOnlyOneAnswerEntered()
        {
            //Arrange
            List <string> answ = new List <string>();

            answ.Add("Havana");
            var questionnaireViewModel = new QuestionnaireViewModel();

            questionnaireViewModel.Submit(answ);

            var res = questionnaireViewModel.Results;

            //Assert
            Assert.That(res[0], Is.EqualTo(false));
            Assert.That(res[1], Is.EqualTo(false));
            Assert.That(res[2], Is.EqualTo(false));
            Assert.That(res[3], Is.EqualTo(false));
        }
Ejemplo n.º 18
0
        public void WhenQuestionnaireIsNotCompleted_ThenCanSubmitReturnsFalse()
        {
            Action <IOperationResult <Questionnaire> > callback = null;

            var repository = new Mock <IQuestionnaireRepository>();

            repository.Setup(r => r.GetQuestionnaireAsync(It.IsAny <Action <IOperationResult <Questionnaire> > >()))
            .Callback <Action <IOperationResult <Questionnaire> > >(c => callback = c);

            var viewModel = new QuestionnaireViewModel(repository.Object);

            callback(CreateQuestionnaireResult());

            AnswerAllQuestions(viewModel);

            // Assertions
            Assert.IsFalse(viewModel.CanSubmit);
        }
Ejemplo n.º 19
0
        public virtual ActionResult Create(QuestionnaireViewModel model)
        {
            if (ModelState.IsValid)
            {
                var questionnaire = new Questionnaire()
                {
                    OrderNumber = model.OrderNumber,
                    Name        = model.Name,
                    IsActive    = model.IsActive,
                    KeyType     = model.KeyType
                };

                _questionnairesRepository.Create(questionnaire);

                return(RedirectToAction(MVC.Admin.Questionnaires.List()));
            }

            return(View(model));
        }
Ejemplo n.º 20
0
        public ActionResult Questionnaire(int filmID)
        {
            QuestionnaireViewModel vm = new QuestionnaireViewModel()
            {
                MemberID     = CurrentMember.MemberID,
                FilmID       = filmID,
                IsCollection = false
            };

            var collection = db.FilmCollections.Where(fc => fc.FilmID == filmID).FirstOrDefault();

            if (collection != null)
            {
                vm.IsCollection    = true;
                vm.CollectionFilms = db.Films.Where(f => f.FilmCollectionID == collection.FilmCollectionID).ToList();
            }

            return(View(vm));
        }
Ejemplo n.º 21
0
        public async Task AnswerTheLastQuestionPostTest()
        {
            var homeController       = InitializeHomeController(out var repository, out var context);
            var respondentIdExpected = await repository.CalculateNewRespondentId();

            var questionnaireVm = new QuestionnaireViewModel
            {
                QuestionId         = 6,
                IsThisLastQuestion = true,
                RespondentId       = respondentIdExpected,
                AnswerContent      = "True"
            };
            var result = await homeController.AnswerTheQuestion(questionnaireVm);

            Assert.True(questionnaireVm.AnswerContentAsBool);
            var view = Assert.IsType <RedirectToActionResult>(result);

            Assert.True(view.ActionName.Equals("FinishQuestionnaire", StringComparison.InvariantCultureIgnoreCase));
        }
Ejemplo n.º 22
0
        public async Task <Double> AddQuestionnaire(QuestionnaireViewModel questionnaireViewModel)
        {
            List <QA> qa = questionnaireViewModel.QA;
            //store sum of answers_weights
            Double sum = 0;

            for (int i = 0; i < qa.Count; i++)
            {
                int question = qa[i].QID;
                int answer   = qa[i].AID;
                int weight   = _yamamadbcontext.Answers.Where(x => x.Idanswers == answer).Select(x => x.AnswerWeight).SingleOrDefault();
                sum += weight;
            }
            double avg = sum / (qa.Count);

            //if (questionnaireViewModel.Factory != 0) { client = questionnaireViewModel.Factory; } else { client = questionnaireViewModel.Project; }

            CustomerSatisfactionReports reports = new CustomerSatisfactionReports
            {
                ProjectId = (questionnaireViewModel.ProjectId != 0) ? questionnaireViewModel.ProjectId : (int?)null,

                FactoryId = (questionnaireViewModel.FactoryId != 0) ? questionnaireViewModel.FactoryId : (int?)null,


                Notes = questionnaireViewModel.Notes,
                SatisfactionEvaluation = avg
            };
            await _yamamadbcontext.CustomerSatisfactionReports.AddAsync(reports);

            await _yamamadbcontext.SaveChangesAsync();

            //get id for this report

            var RecentReport   = _yamamadbcontext.CustomerSatisfactionReports.OrderByDescending(p => p.IdcustomerSatisfactionReports).FirstOrDefault();
            int RecentReportID = RecentReport.IdcustomerSatisfactionReports;

            //assign every report with its questions and answers
            await AddToLink_R_Q_A(qa, RecentReportID);


            return(0);
        }
        public ActionResult ConfirmResubmission(int?id, QuestionnaireViewModel model)
        {
            if (ModelState.IsValid)
            {
                if (id == null)
                {
                    return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
                }

                Questionnaire questionnaire = db.Questionnaires.Find(id);
                if (questionnaire == null)
                {
                    return(HttpNotFound());
                }

                // Review the questionnaire.
                questionnaire.ConfirmResubmission = model.ConfirmResubmission;

                db.Entry(questionnaire).State = EntityState.Modified;
                db.SaveChanges();

                // Change questionaire and request status.
                // If Brand Manager approves questionnaire.
                if (questionnaire.ConfirmResubmission == Review.Approved)
                {
                    questionnaire.Status = QuestionnaireStatus.BMQuestionnaireApproval;
                }
                db.Entry(questionnaire).State = EntityState.Modified;
                db.SaveChanges();

                var request = db.CPTRequests.Where(r => r.QuestionnaireId == questionnaire.QuestionnaireID).First();
                if (questionnaire.Status == QuestionnaireStatus.BMQuestionnaireApproval)
                {
                    request.RequestStatus   = RequestStatus.BMQuestionnaireApproval;
                    db.Entry(request).State = EntityState.Modified;
                    db.SaveChanges();
                }

                return(RedirectToAction("Details", "Questionnaire", new { id = questionnaire.QuestionnaireID }));
            }
            return(View());
        }
Ejemplo n.º 24
0
        public async Task <ActionResult> Index(QuestionnaireViewModel questionnaire)
        {
            ContentResult result = new ContentResult();

            if (ModelState.IsValid)
            {
                int percentage = await _questionService.MarkAnswers(questionnaire.Questions.Select(q => q.Answer));

                result.Content = string.Join("<br />",
                                             questionnaire.QuestionnaireTitle,
                                             string.Join(",", questionnaire.Questions.Select(q => q.Answer)),
                                             "Thank you. Your answers have been submitted.");

                result.Content += string.Format("<br /><br />You scored {0}%", percentage);

                return(result);
            }

            return(View(questionnaire));
        }
        public ViewResult Index()
        {
            var result = _questionResult.JsonResult();

            QuestionnaireViewModel questions = null;

            if (result != null)
            {
                questions = JsonConvert.DeserializeObject <QuestionnaireViewModel>(result);
            }
            else
            {
                questions = new QuestionnaireViewModel();

                ModelState.AddModelError(string.Empty, "Server error.");
            }


            return(View(questions));
        }
Ejemplo n.º 26
0
        public void WhenCurrentStateIsModified_ThenViewModelNotifiesUpdate()
        {
            Action <IOperationResult <Questionnaire> > callback = null;

            var repository = new Mock <IQuestionnaireRepository>();

            repository.Setup(r => r.GetQuestionnaireAsync(It.IsAny <Action <IOperationResult <Questionnaire> > >()))
            .Callback <Action <IOperationResult <Questionnaire> > >(c => callback = c);

            var viewModel = new QuestionnaireViewModel(repository.Object);

            callback(CreateQuestionnaireResult());

            var changeTracker = new PropertyChangeTracker(viewModel);

            viewModel.CurrentState = "newState";

            // Assertions
            Assert.IsTrue(changeTracker.ChangedProperties.Contains("CurrentState"));
        }
Ejemplo n.º 27
0
        public void WhenAgeIsSetOnTheModel_ThenTheHasErrorPropertyInTheViewModelIsClearedAndSinglePropertyChangeNotificationIsFired()
        {
            var questionnaireTemplate = new QuestionnaireTemplate {
                Title = "questionnaire"
            };
            var viewModel =
                new QuestionnaireViewModel(
                    CreateStateMock(questionnaireTemplate).Object,
                    new Mock <IQuestionnaireRepository>().Object,
                    new Mock <ISingleViewUIService>().Object);

            viewModel.Questionnaire.Age  = 25;
            viewModel.Questionnaire.Name = "name";

            Assert.IsTrue(viewModel.CanSubmit);

            viewModel.HasAgeBindingError = true;

            Assert.IsFalse(viewModel.CanSubmit);
        }
        // GET: Questionnaire/ExecutionDetails/5
        public ActionResult ExecutionDetails(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            Questionnaire questionnaire = db.Questionnaires.Find(id);

            if (questionnaire == null)
            {
                return(HttpNotFound());
            }

            var model = new QuestionnaireViewModel
            {
                Id = questionnaire.QuestionnaireID,
                QuestionnaireTitle       = questionnaire.QuestionnaireTitle,
                StartDate                = questionnaire.StartDate,
                EndDate                  = questionnaire.EndDate,
                ResponseQuantityRequired = questionnaire.ResponseQuantityRequired,
                Status = questionnaire.Status,
                QuestionnaireTypeId   = questionnaire.QuestionnaireTypeId,
                QuestionnaireTypeName = db.QuestionnaireTypes.Where(q => q.QuestionnaireTypeID == questionnaire.QuestionnaireTypeId).Select(q => q.QuestionnaireTypeName).First(),
                CRUSEmployeeID        = questionnaire.CRUSEmployeeID,
                CRUSEmployeeName      = db.CRUSupervisors.Find(questionnaire.CRUSEmployeeID).FullName,
            };

            if (questionnaire.CRUMEmployeeID != null)
            {
                model.CRUMEmployeeID   = questionnaire.CRUMEmployeeID;
                model.CRUMEmployeeName = db.CRUMembers.Find(questionnaire.CRUMEmployeeID).FullName;
            }

            var list = db.Employees.ToList().Select(e => new { e.Id, e.FullName });

            ViewBag.EmployeeId = new SelectList(list, "Id", "FullName");

            ViewBag.QuestionnaireTypeId = new SelectList(db.QuestionnaireTypes, "QuestionnaireTypeId", "QuestionnaireTypeName");
            return(View(model));
        }
Ejemplo n.º 29
0
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);

            // Set our view from the "main" layout resource
            SetContentView(Resource.Layout.Main);

            QuestionnaireViewModel vm = new QuestionnaireViewModel();

            this.viewModel = vm;

            this.questiontextView = FindViewById <TextView> (Resource.Id.textView1);
            this.button1          = FindViewById <Button> (Resource.Id.button1);
            this.button2          = FindViewById <Button> (Resource.Id.button2);
            this.button3          = FindViewById <Button> (Resource.Id.button3);
            this.button4          = FindViewById <Button> (Resource.Id.button4);
            this.answerButtons    = new List <Button> {
                button1, button2, button3, button4
            };

            foreach (Button b in answerButtons)
            {
                b.Click += (object sender, EventArgs e) =>
                {
                    int answerIdx = answerButtons.IndexOf(b) + 1;
                    this.viewModel.SubmitAnswer(answerIdx);
                };
            }

            vm.questionChangeHandler += (object sender, EventArgs e) => {
                RefreshView();
            };

            vm.gameEndedHandler += (object sender, EventArgs e) => {
                var alertMaker = new AlertMaker(this);
                alertMaker.DisplayAlert("Game over",
                                        string.Format("Vos avez un score de {0} %", this.viewModel.score));
            };

            RefreshView();
        }
Ejemplo n.º 30
0
        public void ShouldGetAnswersWrong()
        {
            //Arrange
            List <string> answ = new List <string>();

            answ.Add("AAAAAAAAA");
            answ.Add("6534");
            answ.Add(" ");
            answ.Add("");
            var questionnaireViewModel = new QuestionnaireViewModel();

            questionnaireViewModel.Submit(answ);

            var res = questionnaireViewModel.Results;

            //Assert
            Assert.That(res[0], Is.EqualTo(false));
            Assert.That(res[1], Is.EqualTo(false));
            Assert.That(res[2], Is.EqualTo(false));
            Assert.That(res[3], Is.EqualTo(false));
        }