Example #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="surveyId"></param>
        /// <param name="viewType"></param>
        /// <returns></returns>
        public async Task <Survey> GetSurveyFullAsync(int surveyId, SurveyViewType viewType)
        {
            string viewName = viewType == SurveyViewType.RespondentView ? "Standard" : "CATI";
            var    result   = await _appContext.Surveys.Where(s => s.Id == surveyId)
                              .Include(s => s.TitleLabels)
                              .Include(s => s.SurveyViews).ThenInclude(v => v.WelcomePageLabels)
                              .Include(s => s.SurveyViews).ThenInclude(v => v.TermsAndConditionsLabels)
                              .Include(s => s.SurveyViews).ThenInclude(v => v.ThankYouPageLabels)
                              .Include(s => s.SurveyViews).ThenInclude(v => v.ScreeningQuestionLabels)
                              .Include(s => s.SurveyViews).ThenInclude(v => v.QuestionPartViews).ThenInclude(q => q.Labels)
                              .Include(s => s.SurveyViews).ThenInclude(v => v.QuestionPartViews).ThenInclude(q => q.QuestionPartViewChildren).ThenInclude(q2 => q2.Labels)
                              .Include(s => s.SurveyViews).ThenInclude(v => v.QuestionPartViews).ThenInclude(q => q.QuestionPartViewChildren).ThenInclude(q2 => q2.QuestionPart).ThenInclude(qp => qp.QuestionConfigurations).ThenInclude(qc => qc.QuestionConfigurationLabels)
                              .Include(s => s.SurveyViews).ThenInclude(v => v.QuestionPartViews).ThenInclude(q => q.QuestionPartViewChildren).ThenInclude(q2 => q2.QuestionPart).ThenInclude(qp => qp.QuestionOptions).ThenInclude(qo => qo.QuestionOptionLabels)
                              .Include(s => s.SurveyViews).ThenInclude(v => v.QuestionPartViews).ThenInclude(q => q.QuestionPartViewChildren).ThenInclude(q => q.QuestionPartViewChildren).ThenInclude(q2 => q2.Labels)
                              .Include(s => s.SurveyViews).ThenInclude(v => v.QuestionPartViews).ThenInclude(q => q.QuestionPartViewChildren).ThenInclude(q => q.QuestionPartViewChildren).ThenInclude(q2 => q2.QuestionPart).ThenInclude(qp => qp.QuestionConditionalsSource)
                              .Include(s => s.SurveyViews).ThenInclude(v => v.QuestionPartViews).ThenInclude(q => q.QuestionPartViewChildren).ThenInclude(q => q.QuestionPartViewChildren).ThenInclude(q2 => q2.QuestionPart).ThenInclude(qp => qp.QuestionConditionalsTarget)
                              .Include(s => s.SurveyViews).ThenInclude(v => v.QuestionPartViews).ThenInclude(q => q.QuestionPartViewChildren).ThenInclude(q => q.QuestionPartViewChildren).ThenInclude(q2 => q2.QuestionPart).ThenInclude(qp => qp.QuestionOptionConditionalsSource)
                              .Include(s => s.SurveyViews).ThenInclude(v => v.QuestionPartViews).ThenInclude(q => q.QuestionPartViewChildren).ThenInclude(q2 => q2.QuestionPart).ThenInclude(qp => qp.QuestionConditionalsSource)
                              .Include(s => s.SurveyViews).ThenInclude(v => v.QuestionPartViews).ThenInclude(q => q.QuestionPartViewChildren).ThenInclude(q2 => q2.QuestionPart).ThenInclude(qp => qp.QuestionConditionalsTarget)
                              .Include(s => s.SurveyViews).ThenInclude(v => v.QuestionPartViews).ThenInclude(q => q.QuestionPartViewChildren).ThenInclude(q2 => q2.QuestionPart).ThenInclude(qp => qp.QuestionOptionConditionalsSource)
                              .Include(s => s.SurveyViews).ThenInclude(v => v.QuestionPartViews).ThenInclude(q => q.QuestionPartViewChildren).ThenInclude(q => q.QuestionPartViewChildren).ThenInclude(q2 => q2.QuestionPart).ThenInclude(qp => qp.QuestionConfigurations).ThenInclude(qc => qc.QuestionConfigurationLabels)
                              .Include(s => s.SurveyViews).ThenInclude(v => v.QuestionPartViews).ThenInclude(q => q.QuestionPartViewChildren).ThenInclude(q => q.QuestionPartViewChildren).ThenInclude(q2 => q2.QuestionPart).ThenInclude(qp => qp.QuestionOptions).ThenInclude(qo => qo.QuestionOptionLabels)
                              .Where(s => s.SurveyViews.Any(s2 => s2.ViewName == viewName))
                              .SingleOrDefaultAsync();

            return(result);
        }
        public async Task <IActionResult> GetSurveyViewPages(int surveyId, [FromQuery] SurveyViewType viewType = SurveyViewType.RespondentView, [FromQuery] string language = "en")
        {
            List <QuestionPartView> pages = await this._viewService.GetSurveyViewPages(surveyId, viewType);

            var localizedModel = pages.ToLocalizedModel <List <SurveyViewPageViewModel>, QuestionPartView> (language);

            return(new ObjectResult(localizedModel));
        }
        public async Task <IActionResult> GetSurveyThankYou(int surveyId,
                                                            SurveyViewType viewType = SurveyViewType.RespondentView, string language = null)
        {
            var result = await this._viewService.GetSurveyThankYouText(surveyId, language, viewType);

            if (result == null)
            {
                return(new NotFoundResult());
            }

            return(new ObjectResult(result));
        }
Example #4
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="surveyId"></param>
        /// <param name="viewType"></param>
        /// <returns></returns>
        public async Task <Survey> GetSurveyWithLabelsAsync(int surveyId, SurveyViewType viewType)
        {
            string viewName = viewType == SurveyViewType.RespondentView ? "Standard" : "CATI";
            var    result   = await _appContext.Surveys.Where(s => s.Id == surveyId)
                              .Include(s => s.TitleLabels)
                              .Include(s => s.SurveyViews).ThenInclude(v => v.WelcomePageLabels)
                              .Include(s => s.SurveyViews).ThenInclude(v => v.TermsAndConditionsLabels)
                              .Include(s => s.SurveyViews).ThenInclude(v => v.ThankYouPageLabels)
                              .Include(s => s.SurveyViews).ThenInclude(v => v.ScreeningQuestionLabels).Where(s => s.SurveyViews.Any(s2 => s2.ViewName == viewName))
                              .SingleOrDefaultAsync();

            return(result);
        }
        public async Task <IActionResult> GetSurveyViewPageQuestions(int surveyId, int pageNumber,
                                                                     SurveyViewType viewType, string language = "en")
        {
            var result = await this._viewService.GetSurveyViewPageQuestions(surveyId,
                                                                            viewType, pageNumber);

            if (result == null)
            {
                return(new NotFoundResult());
            }

            return(new ObjectResult(result.ToLocalizedModel <SurveyViewPageViewModel> ("en")));
        }
Example #6
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="typeKey"></param>
 public T this[SurveyViewType typeKey]
 {
     get
     {
         if (typeKey == SurveyViewType.RespondentView)
         {
             return(base[0]);
         }
         else
         {
             return(base[1]);
         }
     }
 }
Example #7
0
        /// <summary>
        /// Returns ths Thank You text for the specified survey id of the chosen language
        /// </summary>
        /// <param name="surveyId"></param>
        /// <param name="language"></param>
        /// <param name="viewType"></param>
        /// <returns></returns>
        public async Task <SurveyViewThankYouViewModel> GetSurveyThankYouText(int surveyId, string language = null, SurveyViewType viewType = SurveyViewType.CatiView)
        {
            string viewName       = viewType == SurveyViewType.RespondentView ? "Standard" : "CATI";
            var    surveyThankYou = await this._unitOfWork.ThankYouPageLabels.GetThankYouPageLabelAsync(surveyId, viewName, language);

            return(Mapper.Map <SurveyViewThankYouViewModel> (surveyThankYou));
        }
Example #8
0
        /// <summary>
        /// Returns the Terms and Conditions text for the specified survey id of the chosen language
        /// </summary>
        /// <param name="surveyId"></param>
        /// <returns></returns>
        public async Task <SurveyViewTermsAndConditionsViewModel> GetSurveyTermsAndConditionsText(int surveyId,
                                                                                                  string language         = null,
                                                                                                  SurveyViewType viewType = SurveyViewType.RespondentView)
        {
            Survey survey = await this._unitOfWork.Surveys.GetSurveyFullAsync(surveyId, viewType);

            if (viewType == SurveyViewType.RespondentView && survey.SurveyViews.Count > 0)
            {
                var s2 = (survey.SurveyViews as List <SurveyView>);
                return((survey.SurveyViews as List <SurveyView>) [0]
                       .ToLocalizedModel <SurveyViewTermsAndConditionsViewModel> (language));
            }
            else
            {
                return((survey.SurveyViews as List <SurveyView>) [0]
                       .ToLocalizedModel <SurveyViewTermsAndConditionsViewModel> (language));
            }
        }