public async Task <List <QuestionnaireTemplate> > GetQuestionnaireTemplates_ActiveByTypeAndGender(QuestionnaireTemplate.QuestionnaireType questionnaireType, QuestionnaireTemplate.GenderType genderType) { try { var query = client.CreateDocumentQuery <QuestionnaireTemplate>(UriFactory.CreateDocumentCollectionUri(_settings.DatabaseId, _settings.DefaultCollectionId), new FeedOptions { MaxItemCount = 2 }) .Where(e => e.IsActive && e.TypeOfQuestionnaire == questionnaireType && (e.TypeOfGender == QuestionnaireTemplate.GenderType.Any || e.TypeOfGender == genderType || genderType == QuestionnaireTemplate.GenderType.Any) && e.Type == "QuestionnaireTemplate" ) .AsDocumentQuery(); var qTemplates = await query.ExecuteNextAsync <QuestionnaireTemplate>(); return(qTemplates.ToList()); } catch (DocumentClientException e) { if (e.StatusCode == System.Net.HttpStatusCode.NotFound) { return(null); } else { throw; } } }
public async Task <UserQuestionnaire> GetUserQuestionnaire_ByUserIdAsync(string userId, QuestionnaireTemplate.QuestionnaireType questionnaireType, string questionnaireTemplateId = null) { try { var query = client.CreateDocumentQuery <UserQuestionnaire>(UriFactory.CreateDocumentCollectionUri(_settings.DatabaseId, _settings.DefaultCollectionId), new FeedOptions { MaxItemCount = 2 }) .Where(e => e.Type == "UserQuestionnaire" && e.UserprofileId == userId && e.QuestionnaireTemplateType == questionnaireType && (string.IsNullOrWhiteSpace(questionnaireTemplateId) || e.QuestionnaireTemplateId == questionnaireTemplateId) ).AsDocumentQuery(); var qTemplates = await query.ExecuteNextAsync <UserQuestionnaire>(); var results = qTemplates.ToList(); if (results.Count > 1) { throw new ApplicationException("found more than 1 item"); } return(qTemplates.ToList().FirstOrDefault()); } catch (DocumentClientException e) { if (e.StatusCode == System.Net.HttpStatusCode.NotFound) { return(null); } else { throw; } } }
public Task <UserQuestionnaire> GetUserQuestionnaire_ByUserIdAsync(string userId, QuestionnaireTemplate.QuestionnaireType questionnaireType, string questionnaireTemplateId = null) { throw new NotImplementedException(); }
public Task <List <QuestionnaireTemplate> > GetQuestionnaireTemplates_ActiveByTypeAndGender(QuestionnaireTemplate.QuestionnaireType questionnaireType, QuestionnaireTemplate.GenderType genderType) { throw new NotImplementedException(); }
public async Task <QuestionnaireTemplate> GetQuestionnaireTemplate_ActiveByTypeAndGender(QuestionnaireTemplate.QuestionnaireType questionnaireType, string gender) { var genderType = QuestionnaireTemplate.GenderType.Any; switch (gender) { case "m": genderType = QuestionnaireTemplate.GenderType.Male; break; case "f": genderType = QuestionnaireTemplate.GenderType.Female; break; case null: genderType = QuestionnaireTemplate.GenderType.Any; break; default: throw new ArgumentOutOfRangeException($"gender '${gender}' is not a valid value"); } var questionnaireTemplates = await _repo.GetQuestionnaireTemplates_ActiveByTypeAndGender(questionnaireType, genderType); if (questionnaireTemplates.Count > 1) { throw new BusinessLogicException("Found more than 1 QuestionnaireTemplate meeting the criteria"); } return(questionnaireTemplates.FirstOrDefault()); }
public async Task <UserQuestionnaire> GetUserQuestionnaire_ByUserIdAsync(string userId, QuestionnaireTemplate.QuestionnaireType questionnaireType, string questionnaireTemplateId = null) { var userQuestionnaire = await _repo.GetUserQuestionnaire_ByUserIdAsync(userId, questionnaireType, questionnaireTemplateId); return(userQuestionnaire); }
public async Task <QuestionnaireTemplate> GetQuestionnaireTemplate_ByUserQuestionnaire(UserQuestionnaire uq, QuestionnaireTemplate.QuestionnaireType questionnaireType, string gender) { QuestionnaireTemplate r; if (uq == null) { r = await GetQuestionnaireTemplate_ActiveByTypeAndGender(questionnaireType, gender); } else { if (string.IsNullOrEmpty(uq.QuestionnaireTemplateId)) { throw new BusinessLogicException(ValidationErrorCode.IdIsNull_QuestionnaireTemplateId, uq.Id, $"QuestionnaireTemplate Id in UserQuestionnaire with Id '{uq.Id}' is null"); } else { r = await _repo.GetQuestionnaireTemplate_ByIdAsync(uq.QuestionnaireTemplateId); if (r == null) { throw new BusinessLogicException(ValidationErrorCode.EntityIsNull, uq.Id, $"QuestionnaireTemplate Id '{uq.QuestionnaireTemplateId}' in UserQuestionnaire with Id '{uq.Id}' can not be found in repo."); } } } return(r); }