public VariableControlItem( CreateControl createControl, CalculateSize calculateSize, int yOffset )
        {
            if( createControl == null )
            {
                throw new ArgumentNullException( "createControl" );
            }

            _createControl = createControl;
            _calculateSize = calculateSize;
            _control = _createControl();
            _yOffset = yOffset;
        }
        public async Task <IActionResult> List(CancellationToken cancellationToken, string username = null)
        {
            var token = await GetAccessTokenAsync();

            if (token == null)
            {
                return(Forbid());
            }

            var list = await DeviantArtFs.Api.Gallery.AsyncGetFolders(
                token,
                CalculateSize.NewCalculateSize(true),
                FolderPreload.Default,
                username != null
                ?UserScope.NewForUser(username)
                : UserScope.ForCurrentUser,
                PagingLimit.MaximumPagingLimit,
                PagingOffset.StartingOffset).ToListAsync(cancellationToken);

            ViewBag.Username = username;
            return(View(list));
        }