public async Task <CommandResponse> ExecuteAsync(CancellationToken cancellationToken) { var currentFolderName = _commandRequest.QueryParameters["currentFolder"].FirstOrDefault() ?? "/"; var resourceTypeName = _commandRequest.QueryParameters["type"].FirstOrDefault(); if (string.IsNullOrEmpty(resourceTypeName)) { throw new InvalidRequestException(); } var fileName = _commandRequest.QueryParameters["fileName"].FirstOrDefault(); if (string.IsNullOrEmpty(fileName)) { throw new InvalidRequestException(); } var resourceType = _resourceTypeRepository.GetByName(resourceTypeName); var file = _nodeFactory.CreateFile(resourceType, Path.Combine(currentFolderName, fileName)); await _nodeValidator.ThrowIfReadDeniedAsync(file, cancellationToken); var fileInfo = await file.GetFileInfoAsync(cancellationToken); return(new JsonCommandResponse(fileInfo)); }