public async Task <ServiceResult <List <string> > > GetValuesForPropertyAsync(string property) { using (logger.BeginScope("Get Values for Property")) { logger.LogDebug($"Property name: {property}"); if (Series.Any()) { var selectManySplit = property.Split("|"); IQueryable series = Series.AsQueryable(); for (int i = 0; i < selectManySplit.Length - 1; i++) { series = series.SelectMany(selectManySplit[i]); } return(new ServiceResult <List <string> >(true, series.GroupBy(selectManySplit.Last()).OrderBy("Count() desc").ThenBy("Key").Select("Key").ToDynamicArray <string>().Where(x => !string.IsNullOrEmpty(x)).ToList())); } var seriesResult = await RequestSeries(); return(new ServiceResult <List <string> >(seriesResult.Success, seriesResult.ErrorCode, seriesResult.ErrorMessage)); } }