コード例 #1
0
        public async Task ExecuteAsync(FileId fileId, int dequeueCount, DateTime processingStartedDate, DateTime processingCompletedDate, int renderWidth, int renderHeight)
        {
            fileId.AssertNotNull("fileId");

            var newFile = new File
            {
                State = FileState.ProcessingComplete,
                ProcessingAttempts      = dequeueCount,
                ProcessingStartedDate   = processingStartedDate,
                ProcessingCompletedDate = processingCompletedDate,
                RenderWidth             = renderWidth,
                RenderHeight            = renderHeight,
                Id = fileId.Value,
            };

            using (var connection = this.connectionFactory.CreateConnection())
            {
                const File.Fields States =
                    File.Fields.State |
                    File.Fields.ProcessingAttempts |
                    File.Fields.ProcessingStartedDate |
                    File.Fields.ProcessingCompletedDate |
                    File.Fields.RenderWidth |
                    File.Fields.RenderHeight;

                await connection.UpdateAsync(newFile, States);
            }
        }
コード例 #2
0
        public Task <bool> IsValidForFilePostAsync(FileId fileId)
        {
            fileId.AssertNotNull("fileId");

            // Do we want to filter potentially dangerous files, or be agnostic like DropBox?
            // We need to consider technical people sharing code snippets which might have shell
            // extensions (e.g. `.bat`), so we probably wouldn't want to filter on those?
            return(Task.FromResult(true));
        }
コード例 #3
0
        public async Task <bool> IsValidForImagePostAsync(FileId fileId)
        {
            fileId.AssertNotNull("fileId");

            var fileExtension = await this.getFileExtension.ExecuteAsync(fileId);

            var mimeType = this.mimeTypeMap.GetMimeType(fileExtension);

            return(mimeType.StartsWith("image/"));
        }
コード例 #4
0
        public async Task AssertValidForImagePostAsync(FileId fileId)
        {
            fileId.AssertNotNull("fileId");

            var isValid = await this.IsValidForImagePostAsync(fileId);

            if (!isValid)
            {
                throw new RecoverableException("Not a valid file type for image posts."); // Should this be an UnauthorizedException?
            }
        }
コード例 #5
0
        public async Task ExecuteAsync(FileId fileId)
        {
            fileId.AssertNotNull("fileId");

            using (var connection = this.connectionFactory.CreateConnection())
            {
                await connection.ExecuteAsync(
                    Sql,
                    new
                {
                    FileId = fileId.Value,
                });
            }
        }
コード例 #6
0
        public async Task <FileInformation> GetFileInformationAsync(ChannelId channelId, FileId fileId, string filePurpose)
        {
            fileId.AssertNotNull("fileId");
            filePurpose.AssertNotNull("filePurpose");

            var blobLocation = this.blobLocationGenerator.GetBlobLocation(
                channelId,
                fileId,
                filePurpose);

            ////var blobInformation = await this.blobService.GetBlobInformationAsync(blobLocation.ContainerName, blobLocation.BlobName);

            return(new FileInformation(
                       fileId,
                       blobLocation.ContainerName));
        }