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)); }
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)); }
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)); }