Exemplo n.º 1
0
        public async Task <List <string> > GetMultiSelectValues(int scenarioId, IMultiSelectField field)
        {
            var query = Context.RecommendationProductSummary.Where(x => x.ScenarioId == scenarioId);

            var distinctStringQuery = DistinctFieldValues(query, _recommendationMap, field);

            var results = await distinctStringQuery.ToListAsync();

            return(results);
        }
Exemplo n.º 2
0
 public async Task <List <string> > GetMultiSelectValues(int scenarioId, IMultiSelectField field)
 {
     return(await _recommendationProductSummaryRepository.GetMultiSelectValues(scenarioId, field));
 }
Exemplo n.º 3
0
        public static IQueryable <string> DistinctFieldValues <T>(IQueryable <T> query, EnumMap <RecommendationsKey, T> map, IMultiSelectField field)
        {
            if (!Enum.TryParse(field.Key, true, out RecommendationsKey key))
            {
                throw new Exception("Unknown multi-select key in repository");
            }

            var propertyName = map.Resolve(key);

            Type         t        = typeof(RecommendationProductSummary);
            PropertyInfo property = t.GetProperty(propertyName);

            var resultQuery = query.Select(ds => Convert.ToString(property.GetValue(ds))).Distinct().OrderBy(x => x);

            return(resultQuery);
        }