Пример #1
0
        /// <summary>
        /// Prepare paged measure dimension list model
        /// </summary>
        /// <param name="searchModel">Measure dimension search model</param>
        /// <returns>Measure dimension list model</returns>
        public virtual MeasureDimensionListModel PrepareMeasureDimensionListModel(MeasureDimensionSearchModel searchModel)
        {
            if (searchModel == null)
            {
                throw new ArgumentNullException(nameof(searchModel));
            }

            //get dimensions
            var dimensions = _measureService.GetAllMeasureDimensions();

            //prepare list model
            var model = new MeasureDimensionListModel
            {
                Data = dimensions.PaginationByRequestModel(searchModel).Select(dimension =>
                {
                    //fill in model values from the entity
                    var dimensionModel = dimension.ToModel <MeasureDimensionModel>();

                    //fill in additional values (not existing in the entity)
                    dimensionModel.IsPrimaryDimension = dimension.Id == _measureSettings.BaseDimensionId;

                    return(dimensionModel);
                }),
                Total = dimensions.Count
            };

            return(model);
        }
        /// <summary>
        /// Prepare paged measure dimension list model
        /// </summary>
        /// <param name="searchModel">Measure dimension search model</param>
        /// <returns>
        /// A task that represents the asynchronous operation
        /// The task result contains the measure dimension list model
        /// </returns>
        public virtual async Task <MeasureDimensionListModel> PrepareMeasureDimensionListModelAsync(MeasureDimensionSearchModel searchModel)
        {
            if (searchModel == null)
            {
                throw new ArgumentNullException(nameof(searchModel));
            }

            //get dimensions
            var dimensions = (await _measureService.GetAllMeasureDimensionsAsync()).ToPagedList(searchModel);

            //prepare list model
            var model = new MeasureDimensionListModel().PrepareToGrid(searchModel, dimensions, () =>
            {
                return(dimensions.Select(dimension =>
                {
                    //fill in model values from the entity
                    var dimensionModel = dimension.ToModel <MeasureDimensionModel>();

                    //fill in additional values (not existing in the entity)
                    dimensionModel.IsPrimaryDimension = dimension.Id == _measureSettings.BaseDimensionId;

                    return dimensionModel;
                }));
            });

            return(model);
        }