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); } }
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)); }
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/")); }
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? } }
public async Task ExecuteAsync(FileId fileId) { fileId.AssertNotNull("fileId"); using (var connection = this.connectionFactory.CreateConnection()) { await connection.ExecuteAsync( Sql, new { FileId = fileId.Value, }); } }
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)); }