public async Task <OperationDataResult <SurveyConfigsListModel> > GetSettings( [FromBody] SurveyConfigsRequestModel requestModel) { return(await _surveysService.Get(requestModel)); }
public async Task <OperationDataResult <SurveyConfigsListModel> > Get(SurveyConfigsRequestModel requestModel) { try { var core = await _coreHelper.GetCore(); var result = new SurveyConfigsListModel(); await core.GetAllQuestionSets(); await core.GetAllSurveyConfigurations(); await core.GetAllAnswers(); //await AddTextAnswers(); await using (var sdkContext = core.DbContextHelper.GetDbContext()) { var surveysQueryable = sdkContext.SurveyConfigurations .Where(x => x.WorkflowState != Constants.WorkflowStates.Removed) .AsNoTracking() .AsQueryable(); if (!string.IsNullOrEmpty(requestModel.SearchString)) { surveysQueryable = surveysQueryable .Where(x => x.Name.Contains( requestModel.SearchString, StringComparison.CurrentCultureIgnoreCase)); } if (!string.IsNullOrEmpty(requestModel.Sort)) { if (requestModel.IsSortDsc) { switch (requestModel.Sort) { case nameof(SurveyConfigModel.SurveyName): surveysQueryable = surveysQueryable .OrderByDescending(x => x.QuestionSet.Name); break; default: surveysQueryable = surveysQueryable .CustomOrderByDescending(requestModel.Sort); break; } } else { switch (requestModel.Sort) { case nameof(SurveyConfigModel.SurveyName): surveysQueryable = surveysQueryable .OrderBy(x => x.QuestionSet.Name); break; default: surveysQueryable = surveysQueryable .CustomOrderBy(requestModel.Sort); break; } } } else { surveysQueryable = surveysQueryable .OrderBy(x => x.Id); } result.Total = await surveysQueryable .Select(x => x.Id) .CountAsync(); surveysQueryable = surveysQueryable .Skip(requestModel.Offset) .Take(requestModel.PageSize); result.Entities = await surveysQueryable .Select(x => new SurveyConfigModel() { Id = x.Id, SurveyName = x.QuestionSet.Name, SurveyId = x.QuestionSet.Id, Locations = x.SiteSurveyConfigurations .Where(l => l.WorkflowState != Constants.WorkflowStates.Removed) .Where(l => l.Site.WorkflowState != Constants.WorkflowStates.Removed) .Select(l => new CommonDictionaryModel { Id = l.Site.Id, Name = l.Site.Name, }).ToList() }).ToListAsync(); } return(new OperationDataResult <SurveyConfigsListModel>(true, result)); } catch (Exception e) { Trace.TraceError(e.Message); _logger.LogError(e.Message); return(new OperationDataResult <SurveyConfigsListModel>(false, _localizationService.GetString("ErrorWhileObtainingSurveyConfigurations"))); } }