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