Esempio n. 1
0
        public async Task <ActionResult <UserGridViewDto> > GetUserGridViewById(string company, string gridCode, int gridViewId)
        {
            var userId = _identityService.GetUserName();

            var config = await _gridViewQueries.GetUserGridViewById(userId, company, gridViewId);

            return(Ok(config));
        }
Esempio n. 2
0
        protected virtual async Task <DataTable> ConvertSearchResultToDataTableAsync <T>(string company, string grideCode, int?gridViewId, IEnumerable <T> searchResult)
        {
            var grid = await _gridQueries.GetGrid(grideCode, company);

            if (grid == null)
            {
                throw new AtlasTechnicalException($"No grid configuration found for {grideCode}.");
            }

            DataTableSettings settings = new DataTableSettings();

            settings.DataTableName = grid.Name;

            if (gridViewId.HasValue)
            {
                // Use the selected grid view to configure the columns
                var userGridViewDto = await _gridViewQueries.GetUserGridViewById(_identityService.GetUserName(), company, gridViewId.Value);

                if (grid == null)
                {
                    throw new AtlasTechnicalException($"No grid view found for id {gridViewId.Value}.");
                }

                var agGridColumns = JsonConvert.DeserializeObject <List <AgGridColumnDto> >(userGridViewDto.GridViewColumnConfig);

                //var agGridColumnConfigToD = agGridColumnConfig.AgGridColumns.Where(c => !c.Hide).ToList();

                foreach (var agGridColumn in agGridColumns)
                {
                    var gridColumnDto = grid.Columns.FirstOrDefault(c => c.FieldName.Equals(agGridColumn.ColId, StringComparison.InvariantCultureIgnoreCase));

                    if (gridColumnDto != null)
                    {
                        settings.Columns.Add(new DataTableColumnSetting
                        {
                            DisplayName  = gridColumnDto.FriendlyName,
                            IsExportable = !agGridColumn.Hide, // gridColumnDto.IsVisible,
                            PropertyName = gridColumnDto.FieldName,
                            Order        = agGridColumns.IndexOf(agGridColumn) + 1
                        });
                    }
                }
            }
            else
            {
                // Use the grid configuration to configure the columns
                foreach (var gridColumnDto in grid.Columns)
                {
                    settings.Columns.Add(new DataTableColumnSetting
                    {
                        DisplayName  = gridColumnDto.FriendlyName,
                        IsExportable = gridColumnDto.IsVisible,
                        PropertyName = gridColumnDto.FieldName
                    });
                }
            }

            var dataTable = searchResult.ToList().ToDataTable(settings);

            return(dataTable);
        }