Ejemplo n.º 1
0
        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));
        }