Пример #1
0
        public async Task <ActionResult> ManageQuestions(int id)
        {
            var questionnaire = await _questionnaireRepo.GetById(id);

            var questions = await _questionRepo.GetQuestionsByQuestionnaireId(id);

            var model = new QuestionnaireViewModel
            {
                Id     = id,
                Name   = questionnaire.Name,
                Fields = new List <FieldViewModel>()
            };

            var i = 0;

            foreach (var question in questions)
            {
                var answers = await _answerRepo.GetAnswersByQuestionId(question.Id);

                var answerViewModels = answers.Select(answer => new AnswerViewModel {
                    Content = answer.Content, Value = answer.Value
                }).ToList();

                model.Fields.Add(new FieldViewModel
                {
                    Count      = i,
                    Question   = question.Contents,
                    QuestionId = question.Id,
                    Answers    = answerViewModels
                });
                i++;
            }

            return(View(model));
        }
        public async Task <ActionResult> Index()
        {
            var userEmail           = User.FindFirstValue(ClaimTypes.Email);
            var userQuestionnaireId = await _patientQuestionnaireRepo.GetUserQuestionnairesIdByEmail(userEmail);

            var questionnaires         = userQuestionnaireId.Select(id => _questionnaireRepo.GetById(id).Result).ToList();
            var answeredQuestionnaires = await _userQuestionnaireAnswerRepo.GetByUserEmail(userEmail);

            var todayAnsweredQuestionnaires = answeredQuestionnaires.Where(q => q.AnswerDate.Value.Date == DateTime.Today).ToList();
            var idToRemove = questionnaires.Where(questionnaire => todayAnsweredQuestionnaires.Count(q => q.QuestionnaireId == questionnaire.Id) >= 5).Select(questionnaire => questionnaire.Id).ToList();

            foreach (var id in idToRemove)
            {
                questionnaires.Remove(questionnaires.FirstOrDefault(q => q.Id == id));
            }

            var model = questionnaires.Select(questionnaire =>
                                              new QuestionnaireViewModel
            {
                Fields = null,
                Id     = questionnaire.Id,
                Name   = questionnaire.Name
            }).ToList();

            return(View(model));
        }
Пример #3
0
        public async Task <ActionResult> PatientQuestionnaires(string id)
        {
            var patientQuestionnaires = await _patientQuestionnaireRepo.GetPatientQuestionnairesByEmail(id);

            var patientQuestionnaireViewModels = patientQuestionnaires.Select(patientQuestionnaire =>
                                                                              new PatientQuestionnaireViewModel
            {
                PatientEmail      = id,
                QuestionnaireId   = patientQuestionnaire.QuestionnaireId,
                QuestionnaireName = _questionnaireRepo.GetById(patientQuestionnaire.QuestionnaireId).Result.Name
            }).ToList();

            var model = new PatientQuestionnaireManagerViewModel
            {
                PatientEmail          = id,
                PatientQuestionnaires = patientQuestionnaireViewModels
            };

            return(View(model));
        }
Пример #4
0
        public async Task <ActionResult> ManagePatientQuestionnaires(string id)
        {
            var patientQuestionnaires = await _patientQuestionnaireRepo.GetPatientQuestionnairesByEmail(id);

            var patientQuestionnaireViewModels = patientQuestionnaires.Select(patientQuestionnaire =>
                                                                              new PatientQuestionnaireViewModel {
                PatientEmail    = patientQuestionnaire.PatientEmail,
                QuestionnaireId = patientQuestionnaire.QuestionnaireId
            }).ToList();

            var questionnaires = await _questionnaireRepo.GetAll();

            var questionnaireViewModels = questionnaires.Select(questionnaire =>
                                                                new QuestionnaireViewModel {
                Fields = null,
                Id     = questionnaire.Id,
                Name   = questionnaire.Name
            }).ToList();

            foreach (var item in patientQuestionnaireViewModels)
            {
                item.QuestionnaireName = _questionnaireRepo.GetById(item.QuestionnaireId).Result.Name;
                if (questionnaireViewModels.Any(x =>
                                                x.Id == item.QuestionnaireId))
                {
                    questionnaireViewModels.Remove(
                        questionnaireViewModels.FirstOrDefault(q =>
                                                               q.Id == item.QuestionnaireId));
                }
            }

            var model = new PatientQuestionnaireManagerViewModel
            {
                PatientEmail          = id,
                PatientQuestionnaires = patientQuestionnaireViewModels,
                Questionnaires        = questionnaireViewModels
            };

            return(View(model));
        }