PdfRpt.Core.PdfTable.RenderMainTable.setColumnsVisibility C# (CSharp) Method

setColumnsVisibility() private method

private setColumnsVisibility ( ) : void
return void
        private void setColumnsVisibility()
        {
            _pageSetup = PdfRptData.DocumentPreferences;
            _originalPdfColumnsDefinitions = PdfRptData.PdfColumnsAttributes;
            bool areColumnsAdHoc = false;
            if (_originalPdfColumnsDefinitions == null || !_originalPdfColumnsDefinitions.Any())
            {
                areColumnsAdHoc = true;
                _originalPdfColumnsDefinitions = new AdHocPdfColumnDefinitions(_bodyDataSource, _conventions).CreatePdfColumnDefinitions();
            }
            _bodyDataSource.ApplyPropertyDataAnnotations(this._originalPdfColumnsDefinitions, areColumnsAdHoc);

            if (_pageSetup.GroupsPreferences == null ||
                _pageSetup.GroupsPreferences.GroupType == GroupType.HideGroupingColumns)
            {
                _pdfColumnsDefinitions = _originalPdfColumnsDefinitions.Where(x => x.IsVisible && !x.IncludeInGrouping)
                                             .OrderBy(x => x.Order)
                                             .ToList();
            }

            if (_pageSetup.GroupsPreferences != null &&
                _pageSetup.GroupsPreferences.GroupType == GroupType.IncludeGroupingColumns)
            {
                _pdfColumnsDefinitions = _originalPdfColumnsDefinitions.Where(x => x.IsVisible || x.IncludeInGrouping)
                                             .OrderBy(x => x.Order)
                                             .ToList();
            }

            if (_pageSetup.MainTablePreferences.TableType == TableType.HorizontalStackPanel)
            {
                var columnsCount = _pageSetup.MainTablePreferences.HorizontalStackPanelPreferences.ColumnsPerRow;
                var tempColumnsDefinitions = _pdfColumnsDefinitions.Where(x => !x.IsRowNumber).ToList();
                while (_pdfColumnsDefinitions.Count < columnsCount)
                {
                    _pdfColumnsDefinitions.AddRange(tempColumnsDefinitions);
                }
                _pdfColumnsDefinitions = _pdfColumnsDefinitions.Take(columnsCount).ToList();
            }

            _groupByProperties = _originalPdfColumnsDefinitions.Where(x => x.IncludeInGrouping)
                                     .Select(x => x.PropertyName)
                                     .ToList();
            _isGroupingEnabled = _originalPdfColumnsDefinitions.Any(x => x.IncludeInGrouping);
        }