public async Task <Guid> UploadFileAsync(Stream stream, string extension, FileType fileType) { File fileEntity = fileType switch { FileType.Caff => new CaffFile(), FileType.Preview => new PreviewFile(), _ => throw new ArgumentOutOfRangeException(nameof(fileType), fileType, null) }; fileEntity.Id = Guid.NewGuid(); fileEntity.Extension = extension; _context.Files.Add(fileEntity); var blobContainerClient = fileType switch { FileType.Caff => _caffBlobContainerClient, FileType.Preview => _previewBlobContainerClient, _ => throw new ArgumentOutOfRangeException(nameof(fileType), fileType, null) }; var blobName = fileEntity.Id + fileEntity.Extension; var blobClient = blobContainerClient.GetBlobClient(blobName); await blobClient.UploadAsync(stream); await _context.SaveChangesAsync(); return(fileEntity.Id); }
private string GetBlobName(File file) { return(file.Id + file.Extension); }