コード例 #1
0
        public async Task <LazyLoadingDataSetResult <GroupItem <TItem> > > GetGroupedTablePageData(
            RequestOptions requestOptions,
            IReadOnlyCollection <IFilterDefinition> filterDefinitions = null)
        {
            var dataUri = requestOptions.BuildUrl();

            try
            {
                if (filterDefinitions != null && filterDefinitions.Any())
                {
                    var response = await _httpClient.PostJsonAsync <GroupedItemsDto <TItem> >(dataUri, filterDefinitions);

                    return(ConvertGroupedItemsDtoToGroupedResult(response));
                }
                else
                {
                    var response = await _httpClient.GetJsonAsync <GroupedItemsDto <TItem> >(dataUri);

                    return(ConvertGroupedItemsDtoToGroupedResult(response));
                }
            }
            catch (Exception ex)
            {
                _logger.LogError($"Error during fetching data from [{dataUri}]. Ex: {ex}");
                var emptyResult = new LazyLoadingDataSetResult <GroupItem <TItem> >
                {
                    Items = Enumerable.Empty <GroupItem <TItem> >().ToList()
                };
                return(emptyResult);
            }
        }
コード例 #2
0
        public Task <LazyLoadingDataSetResult <TItem> > GetTablePageData(
            RequestOptions requestOptions,
            IReadOnlyCollection <IFilterDefinition> filterDefinitions = null)
        {
            try
            {
                var queryable  = _queryableSource();
                var totalItems = queryable.Count();
                if (filterDefinitions != null && filterDefinitions.Any())
                {
                    queryable = queryable.Where(_filterExpressionTreeBuilder.BuildExpressionTree(filterDefinitions));
                }
                var items = queryable
                            .ApplySortingToQueryable(requestOptions.SortingOptions)
                            .ApplyPagingToQueryable(requestOptions.PageableOptions)
                            .ToList();
                var result = new LazyLoadingDataSetResult <TItem> {
                    Items = items, TotalCount = totalItems
                };
                return(Task.FromResult(result));
            }
            catch (Exception ex)
            {
                _logger.LogError($"Error during fetching data. Ex: {ex}");

                var emptyResult = new LazyLoadingDataSetResult <TItem>
                {
                    Items = Enumerable.Empty <TItem>().ToList()
                };

                return(Task.FromResult(emptyResult));
            }
        }
コード例 #3
0
        public Task <LazyLoadingDataSetResult <TItem> > GetTablePageData(
            RequestOptions requestOptions,
            IReadOnlyCollection <IFilterDefinition> filterDefinitions = null)
        {
            var dataUri = requestOptions.BuildUrl();

            try
            {
                if (filterDefinitions != null && filterDefinitions.Any())
                {
                    return(_httpClient.PostJsonAsync <LazyLoadingDataSetResult <TItem> >(dataUri, filterDefinitions));
                }
                else
                {
                    return(_httpClient.GetJsonAsync <LazyLoadingDataSetResult <TItem> >(dataUri));
                }
            }
            catch (Exception ex)
            {
                _logger.LogError($"Error during fetching data from [{dataUri}]. Ex: {ex}");

                var emptyResult = new LazyLoadingDataSetResult <TItem>
                {
                    Items = Enumerable.Empty <TItem>().ToList()
                };

                return(Task.FromResult(emptyResult));
            }
        }
コード例 #4
0
        public Task <LazyLoadingDataSetResult <GroupItem <WeatherForecast> > > GetGroupedTablePageData(
            RequestOptions requestOptions,
            IReadOnlyCollection <IFilterDefinition> filterDefinitions = null)
        {
            var emptyResult = new LazyLoadingDataSetResult <GroupItem <WeatherForecast> >
            {
                Items = Enumerable.Empty <GroupItem <WeatherForecast> >().ToList()
            };

            return(Task.FromResult(emptyResult));
        }
コード例 #5
0
        private LazyLoadingDataSetResult <GroupItem <TItem> > ConvertGroupedItemsDtoToGroupedResult(GroupedItemsDto <TItem> groupedItemsDto)
        {
            var result = new LazyLoadingDataSetResult <GroupItem <TItem> >();

            result.Items      = new List <GroupItem <TItem> >();
            result.TotalCount = groupedItemsDto.TotalCount;

            foreach (var pair in groupedItemsDto.Items)
            {
                result.Items.Add(new GroupItem <TItem>(pair.Key, pair.Value));
            }

            return(result);
        }